小程序canvas绘制倒计时
如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人。谢谢大家!❤
如果解决不了,可以在文末进群交流。
效果展示:
//广告倒计时
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绘制倒计时的更多相关文章
- 微信小程序-canvas绘制文字实现自动换行
在使用微信小程序canvas绘制文字时,时常会遇到这样的问题:因为canvasContext.fillText参数为 我们只能设置文本的最大宽度,这就产生一定的了问题.如果我们绘制的文本长度不确定或者 ...
- 小程序canvas绘制纯色圆角区域 setdata数组某一项
小程序canvas绘制纯色圆角区域: //方法: roundRectPath:function(ctx, x, y, w, h, r) { ctx.beginPath(); ctx.moveTo(x ...
- 小程序canvas绘制渐变色(简单入门)
呀,曾经的我是那么的单纯,天真,粗略的翻了一遍小程序画布API,没有看见渐变色,就以为不支持渐变色 于是在项目中直接把原本的渐变色换成了单一颜色展示,发现很low啊 但是,自从上次小程序API文档更新 ...
- 小程序canvas绘制base64数据格式图片
翻了微信小程序官方文档,看了看画板drawImage的用法,官方对所要绘制的图片资源路径并没有很详细,模棱两可,没说支持什么格式的路径.今天我就试一下支不支持base64格式的图片 随便找张图片从网上 ...
- 微信小程序 canvas 绘制圆形状
page({ // 绘制canvas drawCanvas:function(){ const ctx = wx.createCanvasContext('poster') // 画圆形二维码 thi ...
- 微信小程序 canvas 字体自动换行(支持换行符)
微信小程序 canvas 自动适配 自动换行,保存图片分享到朋友圈 https://github.com/richard1015/News 微信IDE演示代码https://developers.w ...
- 微信小程序--canvas画布实现图片的编辑
技术:微信小程序 概述 上传图片,编辑图片大小,添加文字,改变文字颜色等 详细 代码下载:http://www.demodashi.com/demo/14789.html 概述 微信小程序--ca ...
- 小程序canvas生成海报保存至手机相册
小程序canvas画图保存至手机相册 (1)可直接展示生成的海报 .因手机分辨率不同可能导致生成的海报会有细微差别,这里隐藏canvas海报,页面正常设置海报样式保存时保存隐藏的canvas海报 (2 ...
- 微信小程序 | canvas绘图
1.新的尺寸单位 rpx rpx(responsive pixel): 可以根据屏幕宽度进行自适应. 规定屏幕宽为750rpx.如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则 ...
随机推荐
- Ingress-nginx 部署使用
Ingress-nginx 部署使用 一.Ingress 简介 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的.为了使外部的应用能够访问集群内 ...
- 使用create-react-app遇到问题解决方案汇总
使用create-react-app时遇到Module not found问题 转 https://blog.csdn.net/wkq_1212/article/details/90291558 本来 ...
- elementui---日期格式的选择
在用elementui做数据提交的时候,默认的时间格式一个对象,好麻烦,主要对时间进行格式限制,具体方法如下: <el-form-item :label="$t('oneCard.bi ...
- 数据分析入门——pandas之数据合并
主要分为:级联:pd.concat.pd.append 合并:pd.merge 一.numpy级联的回顾 详细参考numpy章节 https://www.cnblogs.com/jiangbei/p/ ...
- AES的256位密钥加解密报 java.security.InvalidKeyException: Illegal key size or default parameters 异常的处理及处理工具
一.出现的现象为了数据代码在传输过程中的安全,很多时候我们都会将要传输的数据进行加密,然后等对方拿到后再解密使用.我们在使用AES加解密的时候,在遇到128位密钥加解密的时候,没有进行什么特殊处理:然 ...
- sudo passwd root:没有相关指令
在linux里如果想要修改密码,就输入这个指令,但是会出现没找到这个指令,是因为环境变量里没有passwd. 解决:查找passwd的位置,sudo find / -name passwd 然后进入p ...
- 浏览器低延时播放监控摄像头RTSP海康大华硬盘录像机NVR视频(EasyNVR播放FLV视频流)
背景描述 EasyNVR的使用者应该都是清楚的知道,EasyNVR一个强大的功能就是可以进行全平台的无插件直播.主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理后可 ...
- upgrade rubygems
gem install rubygems-update update_rubygems gem update --system gem update
- 给通过canvas生成的二维码添加logo
以jquery.qrcode为例来说, 生成二维码代码: 依赖jquery.js, jquery.qrcode.js //计算宽,高,中心坐标,logo大小 var width = 256,heigh ...
- 3.JVM 垃圾收集器
Garbage Collect(垃圾回收) 1.1 如何确定一个对象是垃圾? 要想进行垃圾回收,得先知道什么样的对象是垃圾. 1.1.1 引用计数法 对于某个对象而言,只要应用程序中持有该对象的引用, ...