如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人。谢谢大家!❤

如果解决不了,可以在文末进群交流。

效果展示:

 //广告倒计时
advTimeCountDown:function(advTime){
var step = 1,//计数动画次数
num = 0,//计数倒计时秒数(n - num)
start = 1.5 * Math.PI,// 开始的弧度
end = -0.5 * Math.PI,// 结束的弧度
time = null;// 计时器容器 var animation_interval = 1000,// 每1秒运行一次计时器
n = advTime; // 当前倒计时为30秒
// 动画函数
function animation() {
if (step <= n) {
end = end + 2 * Math.PI / n;
ringMove(start, end);
step++;
} else {
clearInterval(time);
}
}; // 画布绘画函数
function ringMove(s, e) {
var context = wx.createCanvasContext('advTimeCanvas') // 绘制圆环
context.setStrokeStyle('#fff') //设置线条样式
context.beginPath() //重新开始新路径,而把之前的路径都清空掉
context.setLineWidth(3) //绘制线条宽度
context.arc(13, 13, 10, s, e, true) //画圆 1圆的中心的 x 坐标。2圆的中心的 y 坐标。3圆的半径。4起始角,以弧度计(弧的圆形的三点钟位置是 0 度)。5结束角,以弧度计。6规定应该逆时针还是顺时针绘图。False = 顺时针,true = 逆时针。
context.stroke() //绘制一条路径
context.closePath() // 绘制倒计时文本
context.beginPath()
context.setLineWidth(1) //绘制线条宽度
context.setFontSize(10) //设置字号
context.setFillStyle('#fff')
context.setTextAlign('center')
context.setTextBaseline('middle')
context.fillText(n - num + '', 13, 13, 100) //1规定在画布上输出的文本。2开始绘制文本的 x 坐标位置(相对于画布)。3开始绘制文本的 y 坐标位置(相对于画布)。4可选。允许的最大文本宽度,以像素计。
context.fill()
context.closePath() context.draw() // 每完成一次全程绘制就+1
num++;
}; // 倒计时前先绘制整圆的圆环
ringMove(start, end);
time = setInterval(animation, animation_interval);
},

小程序canvas绘制倒计时的更多相关文章

  1. 微信小程序-canvas绘制文字实现自动换行

    在使用微信小程序canvas绘制文字时,时常会遇到这样的问题:因为canvasContext.fillText参数为 我们只能设置文本的最大宽度,这就产生一定的了问题.如果我们绘制的文本长度不确定或者 ...

  2. 小程序canvas绘制纯色圆角区域 setdata数组某一项

    小程序canvas绘制纯色圆角区域: //方法: roundRectPath:function(ctx, x, y, w, h, r) { ctx.beginPath(); ctx.moveTo(x ...

  3. 小程序canvas绘制渐变色(简单入门)

    呀,曾经的我是那么的单纯,天真,粗略的翻了一遍小程序画布API,没有看见渐变色,就以为不支持渐变色 于是在项目中直接把原本的渐变色换成了单一颜色展示,发现很low啊 但是,自从上次小程序API文档更新 ...

  4. 小程序canvas绘制base64数据格式图片

    翻了微信小程序官方文档,看了看画板drawImage的用法,官方对所要绘制的图片资源路径并没有很详细,模棱两可,没说支持什么格式的路径.今天我就试一下支不支持base64格式的图片 随便找张图片从网上 ...

  5. 微信小程序 canvas 绘制圆形状

    page({ // 绘制canvas drawCanvas:function(){ const ctx = wx.createCanvasContext('poster') // 画圆形二维码 thi ...

  6. 微信小程序 canvas 字体自动换行(支持换行符)

    微信小程序 canvas 自动适配 自动换行,保存图片分享到朋友圈  https://github.com/richard1015/News 微信IDE演示代码https://developers.w ...

  7. 微信小程序--canvas画布实现图片的编辑

    技术:微信小程序   概述 上传图片,编辑图片大小,添加文字,改变文字颜色等 详细 代码下载:http://www.demodashi.com/demo/14789.html 概述 微信小程序--ca ...

  8. 小程序canvas生成海报保存至手机相册

    小程序canvas画图保存至手机相册 (1)可直接展示生成的海报 .因手机分辨率不同可能导致生成的海报会有细微差别,这里隐藏canvas海报,页面正常设置海报样式保存时保存隐藏的canvas海报 (2 ...

  9. 微信小程序 | canvas绘图

    1.新的尺寸单位 rpx rpx(responsive pixel): 可以根据屏幕宽度进行自适应. 规定屏幕宽为750rpx.如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则 ...

随机推荐

  1. pipline脚本k8s版

    def label = "jnlp-slave" podTemplate(label: label, cloud: 'kubernetes',containers: [ conta ...

  2. 应用程序正常初始化(0xc0000135)失败。请单击“确定”,终止应用程序。

    应用程序正常初始化(0xc0000135)失败.请单击“确定”,终止应用程序. 没有安装对应版本的.NET FRAMEWORK.

  3. QT源码分析:QTcpServer

    最近在看有关IO复用方面的内容,自己也用标准c++库实现了select模型.iocp模型.poll模型.回过头来很想了解QT的socket是基于什么模型来实现的,所以看了QT关于TcpServer实现 ...

  4. keystone 域中项目、用户、角色的创建

    keystone命令现在全是改成了openstack!!!!!!!!!!!!! Create the service project: $ openstack project create --dom ...

  5. mysql 按照计算值排序

    SELECT title,browse_num/exposure_num as click_rate FROM `tf_news` ORDER BY browse_num/exposure_num d ...

  6. vm采用NAT方式连接时,设置静态ip

    一,共享无线连接或本地连接,给VMnet8. 在网络配置中,选着无线连接,右键属性,共享. 这里默认给虚拟网卡VMnet8,分配了IP:192.168.137.1. 二,在VMware中配置VMnet ...

  7. int main(int argc, char *argv[])解释

    int main(int argc, char *argv[]) 详解: #include <stdio.h> int main(int argc, char *argv[]) { int ...

  8. 使用VMware安装Mac OS的综合整理教程(你要的这里都有……)

    最近打算使用vmware安装Mac系统,听说安装Mac系统是非常繁琐的,经过几番尝试确实如此,所以写下此教程来更完整地讲解能够成功安装mac的步骤,那么废话不多说. 本次教程整合于多个网上教程,但如果 ...

  9. pdfplumber模块初始用

    import pdfplumber import re def pdf_read(): pdf=pdfplumber.open('文件路径'")#文件路径,读取文件 page0=pdf.pa ...

  10. PXC增量恢复添加节点(IST)

    绕开SST通过IST方式添加Node到Percona XtraDB Cluster  Gcache存储了所有的  writeset ,因此说这个集合的大小直接决定了允许其他节点宕机后多长时间内可以进行 ...