微信小程序实现转盘抽奖


Posted in Javascript onSeptember 21, 2020

本文实例为大家分享了微信小程序实现转盘抽奖的具体代码,供大家参考,具体内容如下

效果图如下所示

微信小程序实现转盘抽奖

.wxml

<view class="index">
 <view class="xian"></view>
 <view class="xian"></view>
 <view class="xian"></view>
 <view class="detail">一等奖</view>
 <view class="detail">二等奖</view>
 <view class="detail">三等奖</view>
 <view class="detail">四等奖</view>
 <view class="detail">五等奖</view>
 <view class="detail">六等奖</view>
 <span bindtap="zhuanin" style="transform:rotate({{trasn}}deg);"></span>
</view>

.wxss

.index{
 width: 300px;
 margin: 50rpx calc((100% - 300px) / 2);
 border:1px solid #ffcccc;
 border-radius: 50%;
 height: 300px;
 position: relative;
 overflow: hidden;
 font-size: 26rpx;
}
.xian{
 width:300px;
 height:1px;
 background:#d6d6d6;
 position:absolute;
 top:150px;
 left:0;
}
.index>.xian:nth-child(2){
 transform:rotateZ(60deg)
}
.index>.xian:nth-child(3){
 transform:rotateZ(120deg)
}
.detail{
 position: absolute;
}
.index>.detail:nth-child(4){
 top:25px;left:132px;
}
.index>.detail:nth-child(5){
 top:90px;left:225px;
}
.index>.detail:nth-child(6){
 top:190px;left:225px;
}
.index>.detail:nth-child(7){
 top:250px;left:132px;
}
.index>.detail:nth-child(8){
 top:190px;left:40px;
}
.index>.detail:nth-child(9){
 top:90px;left:40px;
}
.index>span{
 width: 30px;
 height: 30px;
 background-color: #ffcccc;
 border-radius: 50%;
 position: absolute;
 left: 135px;
 top:135px;
}
.index>span::after{
 content: ' ';
 width:0;
 height:0;
 border-right:6px solid transparent;
 border-left:6px solid transparent;
 border-bottom:26px solid #ffcccc;
 z-index: 10;
 position: absolute;
 left: 8.5px;
 top: -24px;
}

.js

Page({
 data: {
 random:'',
 trasn:0,
 },
 zhuanin:function(e){
 let that = this
 let num = 0
 that.setData({
  random:Math.floor(Math.random() * 360),
  trasn:0,
 })
 let a = setInterval(function () {
  that.setData({
  trasn:that.data.trasn+5
  })
  if(360 <= that.data.trasn){
  that.data.trasn = 0
  num = num + 1
  }
  if(num == 3){
  that.currinl()
  clearInterval(a)
  }
 },5)
 },
 currinl:function(e){
 let that = this
 let name = ''
 if(that.data.random == 30 || that.data.random == 90 || that.data.random == 150 || that.data.random == 210 || that.data.random == 330){
  that.setData({
  random:that.data.random + 1
  })
 }
 if(that.data.random < 30 || 330 < that.data.random){
  name = '一等奖'
 }else if(that.data.random > 30 && that.data.random < 90){
  name = '二等奖'
 }else if(that.data.random > 90 && that.data.random < 150){
  name = '三等奖'
 }else if(that.data.random > 150 && that.data.random < 210){
  name = '四等奖'
 }else if(that.data.random > 210 && that.data.random < 270){
  name = "五等奖"
 }else{
  name = "六等奖"
 }
 let b = setInterval(function () {
  that.setData({
  trasn:that.data.trasn+2
  })
  if(that.data.random <= that.data.trasn){
  wx.showToast({
   title: name,
   icon: 'none',
   duration: 2000
  })
  clearInterval(b)
  }
 },10)
 },
})

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
鼠标图片振动代码
Jul 06 Javascript
JS支持带x身份证号码验证函数
Aug 10 Javascript
JQuery通过Ajax提交表单并返回结果
Jul 31 Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 Javascript
JavaScript 闭包机制详解及实例代码
Oct 10 Javascript
vue的props实现子组件随父组件一起变化
Oct 27 Javascript
javascript深拷贝的原理与实现方法分析
Apr 10 Javascript
微信小程序中hidden不生效原因的解决办法
Apr 26 Javascript
使用Electron构建React+Webpack桌面应用的方法
Dec 15 Javascript
详解Vue中使用Echarts的两种方式
Jul 03 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
Oct 08 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
Jul 25 jQuery
结合axios对项目中的api请求进行封装操作
Sep 21 #Javascript
微信小程序实现打卡签到页面
Sep 21 #Javascript
微信小程序实现签到弹窗动画
Sep 21 #Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
Sep 21 #Javascript
微信小程序实现日历签到
Sep 21 #Javascript
Vue切换Tab动态渲染组件的操作
Sep 21 #Javascript
js实现购物车商品数量加减
Sep 21 #Javascript
You might like
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
Python AES加密实例解析
2018/01/18 Python
Anaconda入门使用总结
2018/04/05 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
基于python的列表list和集合set操作
2019/11/24 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
汽车驾驶求职信
2013/10/25 职场文书
实习单位鉴定评语
2014/04/26 职场文书
活动总结模板
2014/05/09 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
python中 .npy文件的读写操作实例
2022/04/14 Python