iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >在vue2中怎么利用svg开发一个环形进度条组件
  • 852
分享到

在vue2中怎么利用svg开发一个环形进度条组件

2023-06-25 13:06:55 852人浏览 八月长安
摘要

本篇内容主要讲解“在Vue2中怎么利用svg开发一个环形进度条组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在vue2中怎么利用svg开发一个环形进度条组件”吧!普通的矩形进度条我们通过di

本篇内容主要讲解“在Vue2中怎么利用svg开发一个环形进度条组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在vue2中怎么利用svg开发一个环形进度条组件”吧!

在vue2中怎么利用svg开发一个环形进度条组件

普通的矩形进度条我们通过div+CSS很容易就可以实现,而环形的就有点麻烦,当然他也可以用div+css通过背景属性或者clip属性配合css3变量做障眼法去实现,但是过于复杂而且兼容和控制起来都比较麻烦,所以,达到最佳效果我们还是去使用svg实现吧。

开发自己组件好处就是,里面的大小,颜色,粗细,动画等等都可以任意扩展,准备好了么,马上要开始啦~

正文

1.传参与计算

<script>export default {  name: "CircleProgress",  data() {    return {           now: 0    };  },  props: {    // 进度值    value: {      type: [String, Number],      default: 0    },    // 尺寸    size: {      type: [String, Number],      default: 120    },    // 边框粗细    strokeWidth:{      type: [String, Number],      default: 10    },    // 进度条颜色    color: {      type: String,      default: "rgba(153,202,251,1)"    },    // 动画执行时间    duration:{      type: [String, Number],      default: 1000    }  },  computed: {    percentage() {      return this.value;    },    countDown() {      return this.now;    },    // 圆心x轴坐标    cx() {      return this.size / 2;    },    // 圆心y轴坐标      cy() {      return this.size / 2;    },    // 半径    radius() {      return (this.size - this.strokeWidth) / 2;    },    // 圆周长    circumference() {      return 2 * Math.PI * this.radius;    },    // 进度长度      progress() {      return (1 - this.now / 100) * this.circumference;    }  },};</script>

相信大家通过上面的注释怎么开发就会猜的八九不十,我们的这个组件可以设置大小,边框粗细,进度条颜色,和后面要多久从0呈现出进度值的动画时长。至于计算属性,会在后面绘制svg的时候,根据注释一一对应不难看出来目的。

2.结构与样式

<template>  <div class="circle-main">    <div class="circle-main-box" :style="[{ 'width': size+'px','height': size+'px'}]">      <svg :width="size" :height="size" class="circle">        <circle          :r="radius"          :cx="cx"          :cy="cy"          fill="transparent"          stroke="#EEEEEE"          :stroke-width="strokeWidth"        />        <circle          :r="radius"          :cx="cx"          :cy="cy"          fill="transparent"          :stroke="color"          :stroke-width="strokeWidth"          stroke-linecap="round"          :stroke-dasharray="circumference"          :stroke-dashoffset="progress"        />      </svg>      <span class="count-num" :style="[{ 'font-size': size*.3+'px'}]">{{countDown}}%</span>    </div>  </div></template>

其实这个很简单就是用svg写两个圆环,第一作为灰色底圆,第二个就是我们的进度条了,设置好大小圆心半径边框色,而且我们要把填充色变为同名,都写完了剩下两项stroke-dasharray和stroke-dashoffset,相信大家都会猜的到了,svg进度条变化核心就是这两个属性,刚刚计算属性也算出来了,分别就是圆环的周长和当前进度的长度。我们利用当前进度值来计算百分比占当前的长度,实现环形进度条的变化,就是这么简单。

然后我们还要写一丢丢css,而且是必须写,因为svg圆环不是从我们认为的0度开始,而是偏移了90度。

在vue2中怎么利用svg开发一个环形进度条组件

所以我们要用css再给他转过90度来!

.circle {  transfORM: rotate(-90deg);}

然后我们顺便写好文字和主框的一些样式。

.circle-main-box {  position: relative;  display: block;  margin: 0 auto;}.count-num {  width: 100px;  height: 100px;  position: absolute;  left: 50%;  top: 50%;  margin-left: -50px;  margin-top: -50px;  align-items: center;  justify-content: center;  display: flex;  font-family: fantasy;  font-size: 30px;  color: #333;  user-select: none;}

在vue2中怎么利用svg开发一个环形进度条组件

这样我们就得到了一个静态的环形进度条了。

3.动画与使用

<script>export default {  name: "CircleProgress",  // ...  mounted() {    this.run();  },  methods: {    run() {      if (this.value == 0) return;      let t = this.duration / this.value      this.timer = setInterval(() => {        if (this.now >= this.value) {          return clearInterval(this.timer);        }        this.now++;      }, t);    }  }};

我们会通过当前动画执行时间与当前的值计算出每次数量+1执行的时间,然后通过 setInterval去执行,直至达到进度值。最后,我们就要开始使用这个组件啦~~

<div id="app">    <CircleProgress :value="60" :size="150" :color="'#d36'"  :duration="3000" /></div>

到此,相信大家对“在vue2中怎么利用svg开发一个环形进度条组件”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 在vue2中怎么利用svg开发一个环形进度条组件

本文链接: https://www.lsjlt.com/news/304959.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 在vue2中怎么利用svg开发一个环形进度条组件
    本篇内容主要讲解“在vue2中怎么利用svg开发一个环形进度条组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在vue2中怎么利用svg开发一个环形进度条组件”吧!普通的矩形进度条我们通过di...
    99+
    2023-06-25
  • 怎么在html中使用svg生成一个环形进度条法
    怎么在html中使用svg生成一个环形进度条法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。<svg width="150px&quo...
    99+
    2023-06-09
  • Android项目中使用Progress实现一个环形进度条
    这期内容当中小编将会给大家带来有关Android项目中使用Progress实现一个环形进度条,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。效果图:代码实现:设置已完成步数和目标步数: public vo...
    99+
    2023-05-31
    android gr progress
  • 在Android开发中通过自定义View实现一个圆形进度条
    这期内容当中小编将会给大家带来有关在Android开发中通过自定义View实现一个圆形进度条,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先来看看自己定义的Viewpackage cn.easymobi...
    99+
    2023-05-31
    android view roi
  • Vue2.x中怎么实现一个条件搜索组件
    这篇文章将为大家详细讲解有关Vue2.x中怎么实现一个条件搜索组件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。组件源码<template> &...
    99+
    2024-04-02
  • Android开发中使用WebView怎么添加一个进度条
    Android开发中使用WebView怎么添加一个进度条?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。标准的XML界面<&#63;xml vers...
    99+
    2023-05-31
    android webview roi
  • 怎么在Android应用中添加一个圆形进度条效果
    这篇文章给大家介绍怎么在Android应用中添加一个圆形进度条效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先我们在attrs属性文件中增加几个自定义属性<&#63;xml version=&quo...
    99+
    2023-05-31
    android roi
  • 怎么在java中利用数组实现一个环形队列
    本篇文章为大家展示了怎么在java中利用数组实现一个环形队列,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系...
    99+
    2023-06-14
  • 怎么在css3中使用clip实现一个圆环进度条
    这期内容当中小编将会给大家带来有关怎么在css3中使用clip实现一个圆环进度条,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现思路圆环很简单,一行cssborder-radius:50%即可实现,而且...
    99+
    2023-06-08
  • 怎么在Android中自定义一个圆形进度条效果
    怎么在Android中自定义一个圆形进度条效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系...
    99+
    2023-06-14
  • 在android应用中利用WebView制作一个进度条
    本篇文章为大家展示了在android应用中利用WebView制作一个进度条,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。进度条的位置问题 进度条加载完成后消失,是invisible还是go...
    99+
    2023-05-31
    android webview
  • Android studio中怎么实现一个圆形进度条
    Android studio中怎么实现一个圆形进度条,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。MainActivityimport android.support...
    99+
    2023-05-30
    android studio
  • 怎么在Android中通过自定义View实现一个环形进度条效果
    这篇文章给大家介绍怎么在Android中通过自定义View实现一个环形进度条效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。功能分析虽然功能比较简单,但是仍然需要仔细分析    ...
    99+
    2023-05-31
    android view roi
  • 使用 css3怎么实现一个圆形进度条
    使用 css3怎么实现一个圆形进度条?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。html代码<div class="progressbar&qu...
    99+
    2023-06-08
  • Android应用中怎么自定义一个圆形进度条
    这期内容当中小编将会给大家带来有关Android应用中怎么自定义一个圆形进度条,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。A.绘制圆环,圆弧,文本//1.画圆环//原点坐标float circleX =...
    99+
    2023-05-31
    android roi
  • vue中怎么使用SVG实现圆形进度条音乐播放
    今天小编给大家分享一下vue中怎么使用SVG实现圆形进度条音乐播放的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果图:实现...
    99+
    2023-06-29
  • C#中怎么利用 WinForm实现一个进度条效果
    C#中怎么利用 WinForm实现一个进度条效果,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先是进度条窗体,需要在上面添加进度条,然后去掉ControlBox。除此外,还要...
    99+
    2023-06-17
  • vue中怎么实现一个拖拽进度条滑动组件
    这期内容当中小编将会给大家带来有关vue中怎么实现一个拖拽进度条滑动组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。调用组件如下:<slider :mi...
    99+
    2024-04-02
  • 使用canvas怎么实现一个圆形进度条动画
    这期内容当中小编将会给大家带来有关使用canvas怎么实现一个圆形进度条动画,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. canvas的HTML部分很简单就一个canvas标签canvas画布的宽高...
    99+
    2023-06-09
  • C#中怎么利用异步实现一个进度条效果
    本篇文章给大家分享的是有关C#中怎么利用异步实现一个进度条效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#进度条实现之异步实例进度条页面://==============...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作