微信小程序实现圆形进度条动画


Posted in Javascript onNovember 18, 2020

本文实例为大家分享了微信小程序动画之圆形进度条,供大家参考,具体内容如下

上图:

微信小程序实现圆形进度条动画

代码:

js:

//获取应用实例
var app = getApp()

var interval;
var varName;
var ctx = wx.createCanvasContext('canvasArcCir');

Page({
 data: {
 },
 drawCircle: function () {
 clearInterval(varName);
 function drawArc(s, e) {
 ctx.setFillStyle('white');
 ctx.clearRect(0, 0, 200, 200);
 ctx.draw();
 var x = 100, y = 100, radius = 96;
 ctx.setLineWidth(7);
 ctx.setStrokeStyle('#BFEFFF');
 ctx.setLineCap('round');
 ctx.beginPath();
 ctx.arc(x, y, radius, s, e, false);
 ctx.stroke()
 ctx.draw()
 }
 var step = 1, startAngle = 1.5 * Math.PI, endAngle = 0;
 var animation_interval = 1000, n = 60;
 var animation = function () {
 if (step <= n) {
 endAngle = step * 8 * Math.PI / n + 1.5 * Math.PI;
 drawArc(startAngle, endAngle);
 step++;
 } else {
 clearInterval(varName);
 }
 };
 varName = setInterval(animation, animation_interval);
 },
 onReady: function () {
 //创建并返回绘图上下文context对象。
 var cxt_arc = wx.createCanvasContext('canvasCircle');
 cxt_arc.setLineWidth(8);
 cxt_arc.setStrokeStyle('#EDEDED');
 cxt_arc.setLineCap('round');
 cxt_arc.beginPath();
 cxt_arc.arc(100, 100, 96, 0, 2 * Math.PI, false);
 cxt_arc.stroke();
 cxt_arc.draw();
 },
 onLoad: function (options) {

 }
})

wxml:

<view class="wrap">
 <view class="circle-box">
 <canvas class="circle" style="width:200px; height:200px;" canvas-id="canvasArcCir">
 </canvas>
 <canvas class="circle" style="z-index: -5; width:200px; height:200px;" canvas-id="canvasCircle">
 </canvas>
 <view class="draw_btn" bindtap="drawCircle">点击开始</view>
 </view>
</view>

wxss:

page {
 width: 100%;
 height: 100%;
 background-color: #fff;
}

.circle-box {
 text-align: center;
 margin-top: 10vw;
}

.circle {
 position: absolute;
 left: 0;
 right: 0;
 margin: auto;
}

.draw_btn {
 width: 28vw;
 position: absolute;
 top: 31vw;
 right: 0;
 left: 0;
 margin: auto;
 border: 1px #0D0D0D solid;
 background-color: #BFEFFF;
 border-radius: 5vw;
}

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

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

Javascript 相关文章推荐
一个加载js文件的小脚本
Jun 28 Javascript
JavaScript国旗变换效果代码
Aug 13 Javascript
为指定元素增加样式的js代码
Dec 09 Javascript
Javascript绝句欣赏 一些经典的js代码
Feb 22 Javascript
jquery自定义下拉列表示例
Apr 25 Javascript
js格式化时间的方法
Dec 18 Javascript
动态JavaScript所造成一些你不知道的危害
Sep 25 Javascript
浅谈Vue 数据响应式原理
May 07 Javascript
详解js访问对象的属性和方法
Oct 25 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
Apr 12 Javascript
15分钟学会vue项目改造成SSR(小白教程)
Dec 17 Javascript
js实现橱窗展示效果
Jan 11 Javascript
JavaScript迭代器的含义及用法
Jun 21 #Javascript
js事件触发操作实例分析
Jun 21 #Javascript
微信小程序实现下拉刷新动画
Jun 21 #Javascript
vue elementUI使用tabs与导航栏联动
Jun 21 #Javascript
Ajax请求时无法重定向的问题解决代码详解
Jun 21 #Javascript
vue配置文件实现代理v2版本的方法
Jun 21 #Javascript
微信小程序自定义多列选择器使用详解
Jun 21 #Javascript
You might like
PHP MemCached 高级缓存应用代码
2010/08/05 PHP
PHP英文字母大小写转换函数小结
2014/05/03 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
python Django模板的使用方法(图文)
2013/11/04 Python
python中偏函数partial用法实例分析
2015/07/08 Python
简单谈谈python的反射机制
2016/06/28 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
夏季药店促销方案
2014/08/22 职场文书
法院干警四风问题个人对照检查材料思想汇报
2014/10/07 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
调研报告的主要写法
2019/04/18 职场文书
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS