微信小程序项目实例——幸运大转盘

文章目录

  • 微信小程序项目实例——幸运大转盘
  • 一、项目展示
  • 二、抽奖页
  • 三、领奖页
  • 文末:项目代码

项目代码见文字底部,点赞关注有惊喜


一、项目展示

幸运大转盘是一个简单的抽奖小程序
参与用户点击抽奖便可抽取轮盘的奖品

二、抽奖页

抽奖页是一个大轮盘和活动规则
页面形式简单
主要核心在于轮盘

核心代码【轮盘旋转】如下:

 getLottery: function () {var that = thisvar awardIndex = Math.random() * 6 >>> 0;// 获取奖品配置var awardsConfig = app.awardsConfig,runNum = 8if (awardIndex < 2) awardsConfig.chance = falseconsole.log(awardIndex)// 旋转抽奖app.runDegs = app.runDegs || 0console.log('deg', app.runDegs)app.runDegs = app.runDegs + (360 - app.runDegs % 360) + (360 * runNum - awardIndex * (360 / 6))console.log('deg', app.runDegs)var animationRun = wx.createAnimation({duration: 4000,timingFunction: 'ease'})that.animationRun = animationRunanimationRun.rotate(app.runDegs).step()that.setData({animationData: animationRun.export(),btnDisabled: 'disabled'})// 绘制转盘var awardsConfig = app.awardsConfig.awards,len = awardsConfig.length,rotateDeg = 360 / len / 2 + 90,html = [],turnNum = 1 / len  // 文字旋转 turn 值that.setData({btnDisabled: app.awardsConfig.chance ? '' : 'disabled'  })var ctx = wx.createContext()for (var i = 0; i < len; i++) {// 保存当前状态ctx.save();// 开始一条新路径ctx.beginPath();// 位移到圆心,下面需要围绕圆心旋转ctx.translate(150, 150);// 从(0, 0)坐标开始定义一条新的子路径ctx.moveTo(0, 0);// 旋转弧度,需将角度转换为弧度,使用 degrees * Math.PI/180 公式进行计算。ctx.rotate((360 / len * i - rotateDeg) * Math.PI/180);// 绘制圆弧ctx.arc(0, 0, 150, 0,  2 * Math.PI / len, false);// 颜色间隔if (i % 2 == 0) {ctx.setFillStyle('rgba(255,184,32,.1)');}else{ctx.setFillStyle('rgba(255,203,63,.1)');}// 填充扇形ctx.fill();// 绘制边框ctx.setLineWidth(0.5);ctx.setStrokeStyle('rgba(228,55,14,.1)');ctx.stroke();// 恢复前一个状态ctx.restore();// 奖项列表html.push({turn: i * turnNum + 'turn', lineTurn: i * turnNum + turnNum / 2 + 'turn', award: awardsConfig[i].name});    }

其他相关代码见文章底部

效果如下:

三、领奖页

领奖页是对获奖的信息进行罗列


<view class="top"><image class="userinfo-avatar" src="{{head}}" background-size="cover"></image><text style="font-size:40rpx">失散多年的哥哥</text>
</view><view class="mid"><button bindtap="gotoLottery" type="primary" style="width:600rpx;background-color:#D75858">去抽奖</button>
</view><view class="txt"><text wx:if="{{awardsList.length > 0}}">恭喜您获得了以下奖品:</text><text wx:if="{{awardsList.length == 0}}">您还中奖,快去抽奖吧</text>
</view><view class="gift" wx:for="{{awardsList}}" wx:key="unique"><text style="font-size:34rpx;margin-left:30rpx">{{item}}</text>
</view>

文末:项目代码

点击下载

微信小程序项目实例——幸运大转盘相关推荐

  1. 微信小程序开发之大转盘 仿天猫超市抽奖

    天猫超市翻牌的转盘经常用,以前做Android,没啥想法,现在尝试微信小程序,看到别人家APP里有啥好玩的,就想去做一个. 上GIF看效果: 简要的说一下. 1.外面一圈闪烁的小球是用js控制的样式. ...

  2. 010 - 微信小程序开发之大转盘 仿天猫超市抽奖

    天猫超市翻牌的转盘经常用,以前做Android,没啥想法,现在尝试微信小程序,看到别人家APP里有啥好玩的,就想去做一个. 上GIF看效果: 简要的说一下. 1.外面一圈闪烁的小球是用js控制的样式. ...

  3. 微信小程序开发之大转盘 抽奖

    上代码: 1.index.wxml <view class="container-out"><view class="circle" wx:f ...

  4. 用微信小程序编写抽奖大转盘

    首先我们要先绘制出转盘布局,比如8项奖品转盘.基本布局思路: 1. 8个产品块采用相对或绝对定位,先将8个产品固定在转盘中心位置. 2. 每个产品块包括图片和文字,做好角度偏移,例如360°/8,第一 ...

  5. 微信小程序项目实例——智能用电

    微信小程序项目实例--智能用电 文章目录 微信小程序项目实例--智能用电 一.项目展示 二.引导页 三.配家电 四.小贴士 五.省电费 六.节能源 项目代码见文字底部,点赞关注有惊喜 一.项目展示 二 ...

  6. 微信小程序项目实例——二维码生成器

    微信小程序项目实例--二维码生成器 文章目录 微信小程序项目实例--二维码生成器 一.项目展示 二.项目核心代码 三.效果展示 文末 项目代码见文字底部,点赞关注有惊喜 一.项目展示 项目是一个简单实 ...

  7. 微信小程序项目实例——手势解锁

    微信小程序项目实例--手势解锁 文章目录 微信小程序项目实例--手势解锁 一.项目展示 二.设置手势.手势解锁 三.手势重置 文末:项目代码 项目代码见文字底部 一.项目展示 这是一款简单实用的手势解 ...

  8. 微信小程序项目实例——摇色子

    微信小程序项目实例--摇色子 文章目录 微信小程序项目实例--摇色子 一.项目展示 二.核心代码 三.效果图 文末 项目代码见文字底部,点赞关注有惊喜 一.项目展示 摇色子是一款简易的游戏类小程序 用 ...

  9. 微信小程序项目实例——食堂吃哪个

    微信小程序项目实例--食堂吃哪个 文章目录 微信小程序项目实例--食堂吃哪个 一.项目展示 二.操作流程和核心代码 三.效果展示 文末 项目代码见文字底部,点赞关注有惊喜 一.项目展示 这是一款娱乐性 ...

最新文章

  1. SQL Server实用操作小技巧集合
  2. SAP RETAIL WA03 基于分配表创建PO报错 - No work list could be selected –
  3. .NET Core Community 第二个千星项目诞生:Util
  4. vue在js上处理后台返回的数组_vuejs 根据后台返回数组,渲染图片路径
  5. 就算是蜗牛,也有爬到树顶的那一天!~
  6. linux内存管理(十三)-内存规整过程分析
  7. HALCON 20.11:深度学习笔记(5)---设置超参数
  8. 近期解决问题经历和感悟
  9. Java类获取Spring容器的bean
  10. 动物统计 nyoj286
  11. Office 2010 语言包 Office 2010 En english package 包含office professional plus所有组件,还有viso,project!
  12. 《SEM长尾搜索营销策略解密》一一2.10 小领域文化进入红利期
  13. HBuilder封装APP集成推送功能
  14. win10卸载软件_一款适合于windows端的卸载神器 彻底清理残留软件
  15. 三个显示图像的matlab函数图像,如何在matlab中将三个隐函数图像画在同一个图上...
  16. Python爬虫实战案例:取喜马拉雅音频数据详解
  17. HTTP 错误 404.2 - Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。
  18. java练习04|银行利率表如下表所示,请计算存款10000元,活期1年、活期2年,定期1年,定期2年后的本息合计。
  19. Nginx反向代理后无法获取客户端真实IP地址
  20. 我对ACM初学者想说的话

热门文章

  1. 一个“追跌卖涨”的股票筛选程序
  2. lisp点位提取_AutoCADlisp插件三维交点坐标提取
  3. 如何将多个excel表格合并成一个_如何将多个PDF的首页整合成一个单独的PDF
  4. matlab中mat文件的生成和读取
  5. Java-HashMap源码
  6. 春季 3 月 · CSM 认证周末班【提前报名特惠】“全球金牌课程”CST 导师亲授
  7. 标准曲线制作、SEM检验、使用知识大全
  8. (SVN笔记)SVN服务端+SVN客户端Tortoise——安装配置
  9. 表单校验之@NotBlank,@NotNull,@NotEmpty之间的区别
  10. NLP竞赛全球亚军,我的科研经验分享