vue环形进度条组件实例应用


Posted in Javascript onOctober 10, 2018

在做项目的时候,最好只使用一套组件库,但是很多时候我们的组件库里面没有我们需要的组件,这个时候我们还是需要自己写组件了,vux里面就没有环形进度条组件,所以需要自己写一个。

查找资料后发现了一个很好的实现方式,通过svg来实现,以前的时候学过一点svg但是没有怎么深入了解过。。。现在看来真是罪过,给出参考链接

https://segmentfault.com/a/1190000008149403

可以看出原作者使用了两种方式,我们选择了第二种,简单,而且好扩展。可以看到svg就想是canvas一样进行绘图。原文已经讲得很详细了,这里就附上自己写的组件吧。伸手党们也能愉快一点。

<template>
 <svg :height="option.size" :width="option.size" x-mlns="http://www.w3.org/200/svg">
  <circle
   :r="option.radius"
   :cx="option.cx"
   :cy="option.cy"
   :stroke="option.outerColor"
   :stroke-width="option.strokeWidth"
   fill="none"
   stroke-linecap="round"/>
  <circle
   id="progressRound"
   :stroke-dasharray="completenessHandle"
   :r="option.radius"
   :cx="option.cx"
   :cy="option.cy"
   :stroke-width="option.strokeWidth"
   :stroke="option.innerColor"
   fill="none"
   class="progressRound"
  />
 </svg>
</template>
<script>
export default {
 name: 'CommonLoopProgress',
 props: {
  completeness: {
   type: Number,
   required: true,
  },
  progressOption: {
   type: Object,
   default: () => {},
  },
 },
 data () {
  return {
  }
 },
 computed: {
  completenessHandle () {
   let circleLength = Math.floor(2 * Math.PI * this.option.radius)
   let completenessLength = this.completeness * circleLength
   return `${completenessLength},100000000`
  },
  option () {
   // 所有进度条的可配置项
   let baseOption = {
    radius: 20,
    strokeWidth: 5,
    outerColor: '#E6E6E6',
    innerColor: '#FFDE00',
   }
   Object.assign(baseOption, this.progressOption)
   // 中心位置自动生成
   baseOption.cy = baseOption.cx = baseOption.radius + baseOption.strokeWidth
   baseOption.size = (baseOption.radius + baseOption.strokeWidth) * 2
   return baseOption
  },
 },
}
</script>
<style scoped lang='stylus'>
@import '~stylus/_variables.styl';
@import '~stylus/_mixins.styl';

.progressRound {
 transform-origin: center;
 transform: rotate(-90deg);
 transition: stroke-dasharray 0.3s ease-in;
}
</style>

修改了原文中的一些不好的命名方式,并且让我们的组件方便配置,可以自由一点。

以上就是本次知识点的全部内容,感谢大家对三水点靠木的支持。

Javascript 相关文章推荐
不用写JS也能使用EXTJS视频演示
Dec 29 Javascript
JS运动相关知识点小结(附弹性运动示例)
Jan 08 Javascript
jQuery下拉框的简单应用
Jun 24 Javascript
js querySelector() 使用方法
Dec 21 Javascript
JavaScript输出所选择起始与结束日期的方法
Jul 12 Javascript
angular json对象push到数组中的方法
Feb 27 Javascript
vue中的数据绑定原理的实现
Jul 02 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 Javascript
Layui数据表格 前后端json数据接收的方法
Sep 19 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
Aug 14 Javascript
uniapp微信小程序:key失效的解决方法
Jan 20 Javascript
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
Node.js中读取TXT文件内容fs.readFile()用法
Oct 10 #Javascript
详解Node.js读写中文内容文件操作
Oct 10 #Javascript
angular6的响应式表单的实现
Oct 10 #Javascript
JS原生带缩略图的图片切换效果
Oct 10 #Javascript
js实现前面自动补全位数的方法
Oct 10 #Javascript
Egg.js 中 AJax 上传文件获取参数的方法
Oct 10 #Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
Oct 10 #Javascript
You might like
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
你必须知道的Javascript知识点之&quot;this指针&quot;的应用
2013/04/23 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
js简单抽奖代码
2015/01/16 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
python实现微信自动回复机器人功能
2019/07/11 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
Python @property原理解析和用法实例
2020/02/11 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
消防安全管理制度
2014/02/01 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
python3实现常见的排序算法(示例代码)
2021/07/04 Python
Win10 Anaconda安装python-pcl
2022/04/29 Servers
Python 文字识别
2022/05/11 Python