全国服务热线:4008-888-888

产品中心

网页制作素材

网页制作素材

详情介绍

网页制作素材:微信小程序利用canvas 绘制幸运大转盘功能

微信小程序利用canvas 绘制幸运大转盘功能  更新2018年07月06日   作者:理想追随者   本文通过一段简单的实例代码给大家介绍微信小程序利用canvas 绘制幸运大转盘,代码很简单,感兴趣的朋友跟随脚本之家小编一起看看吧
ctx.moveTo(0, 0); // 旋转弧度,需将角度转换为弧度,使用 degrees * Math.PI/180 公式进行计算。 ctx.rotate((360 / len * i - rotateDeg) * Math.PI / 180); // 绘制圆弧 ctx.arc(0, 0, r, 0, 2 * Math.PI / len, false); // 颜色间隔 if (i % 2 == 0) { ctx.setFillStyle('#ffffff'); } else { ctx.setFillStyle('#ffeab0'); // 填充扇形 ctx.fill(); // 绘制边框 ctx.setLineWidth(0.5); ctx.setStrokeStyle('#e4370e'); ctx.stroke(); // 恢复前一个状态 ctx.restore(); // 奖项列表 html.push({ turn: (i + 1) * turnNum + 'turn', award: awardsConfig[i] self.setData({ awardsList: html wx.drawCanvas({ canvasId: 'canvas', actions: ctx.getActions() inner: function(e) { const self = this; if (self.data.awardsConfig.chance) { self.data.awardsConfig.chance = false;//转动时禁止再次触发点击事件 var json = res.data;//后端自动分配奖项,并传给前端奖项信息 var item = parseInt(json.grade); //获取从1到奖品数量之间的随机数 self.getLottery(item + 1, self.data.restaraunts[item]); //奖项位置 (+1 是为了转动的时候计算角度),对应奖项 getLottery: function(item, txt) { var self = this var awardsConfig = self.data.awardsConfig.awards, len = awardsConfig.length; var awardIndex = item; // 获取奖品配置 var awardsConfig = self.data.awardsConfig if (awardIndex 2) awardsConfig.chance = false // 初始化 rotate var animationInit = wx.createAnimation({ duration: 1 this.animationInit = animationInit; animationInit.rotate(0).step() this.setData({ animationData: animationInit.export(), btnDisabled: 'disabled' // 旋转抽奖 执行动画效果 setTimeout(function () { var animationRun = wx.createAnimation({ duration: 4000, timingFunction: 'ease' self.animationRun = animationRun animationRun.rotate(0 - (360 * 8 - awardIndex * (360 / len))).step() self.setData({ animationData: animationRun.export() }, 100) // 记录奖品 var winAwards = wx.getStorageSync('winAwards') || { data: [] var textInfo = txt === "谢谢参与" txt : txt + '1个'; winAwards.data.push(textInfo) wx.setStorageSync('winAwards', winAwards) var jh = parseInt(self.data.jh) - 1; // 中奖提示 setTimeout(function () { if (txt === "谢谢参与") { wx.showModal({ title: '很遗憾', content: '祝您好运', showCancel: false } else { wx.showModal({ title: '恭喜', content: '获得' + txt, showCancel: false self.data.awardsConfig.chance = true; if (awardsConfig.chance) { self.setData({ btnDisabled: '' }, 4100); function(err) { console.log(err) console.log("err") //error * 生命周期函数--监听页面初次渲染完成 onReady: function() { // this.drawTurntable(this, new Date()); * 生命周期函数--监听页面显示 onShow: function() { * 生命周期函数--监听页面隐藏 onHide: function() { * 生命周期函数--监听页面卸载 onUnload: function() { * 页面相关事件处理函数--监听用户下拉动作 onPullDownRefresh: function() { * 页面上拉触底事件的处理函数 onReachBottom: function() { * 用户点击右上角分享 onShareAppMessage: function() { })

小程序 canvas 层级永远在最上级,如果想要设置在canvas上面 就需要用到web-view 或者 web-image 这样就能居于canvas 上层了 ,具体可以去查看下小程序的api 搜索web-view 这里就不多解释啦,如有错误之处,还希望各位不吝赐教

总结

以上所述是小编给大家介绍的微信小程序利用canvas 绘制幸运大转盘功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!


相关文章

这篇文章主要为大家详细介绍了Bootstrap中CSS的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

这篇文章主要介绍了js向上无缝滚动,网站公告效果,有需要的朋友可以参考一下

这篇文章主要介绍了JS小游戏之极速快跑源码详解,对游戏的主要流程及原理进行了较为详细的讲解,并附有完整实例源码,需要的朋友可以参考下

本节主要介绍了ie8下面处理 new Date()的问题,需要的朋友可以参考下

修改frameset的cols属性来达到修改各个页面所占的宽高,例如隐藏当前frame页等等,感兴趣的朋友可以了解下

这篇文章主要给大家介绍了关于JavaScript实现鼠标移入随机变换颜色的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

这篇文章主要介绍了JS实现从连接中获取youtube的key的方法,涉及javascript字符串操作的相关技巧,需要的朋友可以参考下

这篇文章主要为大家详细介绍了js实现随机点名器的精简版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

超强推荐的js编程中的简洁写法收集...

一般来说文章内容中的广告点击率更好,也更容易被访客看到,如果直接将广告放到页面头部会影响网站的速度,所以一般都比较喜欢这种方法,这里分享下实现方法


在线客服

关闭

客户服务热线
4008-888-888


点击这里给我发消息 在线客服

点击这里给我发消息 在线客服