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


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 相关文章推荐
javascript 禁止复制网页
Jun 11 Javascript
JS实现的一个简单的Autocomplete自动完成例子
Apr 16 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
Mar 02 Javascript
JavaScript仿flash遮罩动画效果
Jun 15 Javascript
AngularJs html compiler详解及示例代码
Sep 01 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
Feb 17 Javascript
基于JavaScript实现焦点图轮播效果
Mar 27 Javascript
Vue验证码60秒倒计时功能简单实例代码
Jun 22 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
Angular Excel 导入与导出的实现代码
Apr 17 Javascript
layui实现数据表格table分页功能(ajax异步)
Jul 27 Javascript
JavaScript中this的学习笔记及用法整理
Feb 17 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php去除换行(回车换行)的三种方法
2014/03/26 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
详解vue.js之props传递参数
2017/12/12 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
python Django批量导入不重复数据
2016/03/25 Python
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
Python如何计算语句执行时间
2019/11/22 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
python try...finally...的实现方法
2020/11/25 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
2014年大学生党课心得体会范文
2014/03/29 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
治庸问责心得体会
2014/09/12 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
财务工作失误检讨书
2015/02/19 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python