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 相关文章推荐
escape、encodeURI、encodeURIComponent等方法的区别比较
Dec 27 Javascript
javascript类继承机制的原理分析
Sep 12 Javascript
一个js拖拽的效果类和dom-drag.js浅析
Jul 17 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
Jan 25 Javascript
JS+CSS实现一个气泡提示框
Aug 18 Javascript
javascript loadScript异步加载脚本示例讲解
Nov 14 Javascript
浅谈javascript 函数属性和方法
Jan 21 Javascript
jQuery进行组件开发完整实例
Dec 15 Javascript
两种js监听滚轮事件的实现方法
May 13 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
Aug 29 Javascript
vue项目配置使用flow类型检查的步骤
Mar 18 Javascript
解决vue 退出动画无效的问题
Aug 09 Javascript
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
德生S2000电路分析
2021/03/02 无线电
php array的学习笔记
2012/05/16 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
微信小程序  checkbox组件详解及简单实例
2017/01/10 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
2019/12/20 Javascript
python中关于for循环的碎碎念
2017/06/30 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
python查看模块,对象的函数方法
2018/10/16 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
python地震数据可视化详解
2019/06/18 Python
python将数组n等分的实例
2019/12/02 Python
python跨文件使用全局变量的实现
2020/11/17 Python
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
网站开发实习生的自我评价
2013/12/11 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
班主任班级寄语大全
2014/04/04 职场文书
大学新生入学教育方案
2014/05/16 职场文书
2014年采购工作总结
2014/11/20 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
JavaScript实现简单拖拽效果
2021/09/15 Javascript