详解微信小程序——自定义圆形进度条


Posted in Javascript onDecember 29, 2016

微信小程序 自定义圆形进度条,具体如下:

无图无真相,先上图:

详解微信小程序——自定义圆形进度条

实现思路,先绘制底层的灰色圆圈背景,再绘制上层的蓝色进度条。

代码实现:

JS代码:

Page({ 
 data: {}, 
 onLoad: function (options) { 
  // 页面初始化 options为页面跳转所带来的参数 
 }, 
 onReady: function () { 
 
  // 页面渲染完成 
  var cxt_arc = wx.createCanvasContext('canvasArc');//创建并返回绘图上下文context对象。 
  cxt_arc.setLineWidth(6); 
  cxt_arc.setStrokeStyle('#d2d2d2'); 
  cxt_arc.setLineCap('round') 
  cxt_arc.beginPath();//开始一个新的路径 
  cxt_arc.arc(106, 106, 100, 0, 2*Math.PI, false);//设置一个原点(106,106),半径为100的圆的路径到当前路径 
  cxt_arc.stroke();//对当前路径进行描边 
   
  cxt_arc.setLineWidth(6); 
  cxt_arc.setStrokeStyle('#3ea6ff'); 
  cxt_arc.setLineCap('round') 
  cxt_arc.beginPath();//开始一个新的路径 
  cxt_arc.arc(106, 106, 100, -Math.PI * 1 / 2, Math.PI*6/5, false); 
  cxt_arc.stroke();//对当前路径进行描边 
 
  cxt_arc.draw(); 
   
 }, 
 onShow: function () { 
  // 页面显示 
 }, 
 onHide: function () { 
  // 页面隐藏 
 }, 
 onUnload: function () { 
  // 页面关闭 
 } 
})

页面布局:

<view class="wrap"> 
 <view class="top"> 
  <canvas class="cir" style="width:212px; height:212px;" canvas-id="canvasArc"> 
  </canvas> 
 
  <view class="cc">中间</view> 
 
 </view> 
</view>

CSS样式:

.cir{ 
 display: inline-block; 
 margin-top: 20rpx; 
 
} 
 
.top{ 
 text-align: center 
} 
 
.cc{ 
  
 margin-top: -120px; 
  
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
Apr 27 Javascript
JSON语法五大要素图文介绍
Dec 04 Javascript
三种AngularJS中获取数据源的方式
Feb 02 Javascript
纯JavaScript手写图片轮播代码
Oct 20 Javascript
JavaScript数组去重的几种方法效率测试
Oct 23 Javascript
简单快速的实现js计算器功能
Aug 17 Javascript
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
jquery-file-upload 文件上传带进度条效果
Nov 21 jQuery
JS简单获得节点元素的方法示例
Feb 10 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
May 10 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
Feb 07 Javascript
JS作用域深度解析
Dec 29 #Javascript
javascript中的深复制详解及实例分析
Dec 29 #Javascript
canvas学习之API整理笔记(一)
Dec 29 #Javascript
Javascript Function.prototype.bind详细分析
Dec 29 #Javascript
jQuery自定义插件详解及实例代码
Dec 29 #Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
Dec 29 #Javascript
JavaScript获取短信验证码(周期性)
Dec 29 #Javascript
You might like
上传多个文件的PHP脚本
2006/11/26 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
给ECShop添加最新评论
2015/01/07 PHP
php银联网页支付实现方法
2015/03/04 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
JavaScript Chart 插件整理
2010/06/18 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
vue登录注册实例详解
2019/09/14 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
使用python编写android截屏脚本双击运行即可
2014/07/21 Python
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
python实现学生通讯录管理系统
2021/02/25 Python
LINUX下线程,GDI类的解释
2016/12/14 面试题
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
工作交流会欢迎词
2014/01/12 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
python文件目录操作之os模块
2021/05/08 Python