微信小程序实现转盘抽奖


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 相关文章推荐
几款极品的javascript压缩混淆工具
May 16 Javascript
js 动态选中下拉框
Nov 26 Javascript
javascript之学会吝啬 精简代码
Apr 25 Javascript
Node.js模拟浏览器文件上传示例
Mar 26 Javascript
影响jQuery使用的14个方面
Sep 01 Javascript
深入理解javascript原型链和继承
Sep 23 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
Dec 04 Javascript
Js获取当前日期时间及格式化代码
Sep 17 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
Feb 17 Javascript
vue-axios使用详解
May 10 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
Feb 24 Javascript
antd中table展开行默认展示,且不需要前边的加号操作
Nov 02 Javascript
结合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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
PHP小技巧之函数重载
2014/06/02 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
学习YUI.Ext 第二天
2007/03/10 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
跟老齐学Python之编写类之三子类
2014/10/11 Python
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
python字典的遍历3种方法详解
2019/08/10 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
公司员工检讨书
2014/02/08 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
网管求职信
2014/03/03 职场文书
2014年母亲节寄语
2014/05/07 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
副总经理任命书
2014/06/05 职场文书
生物工程专业求职信
2014/09/03 职场文书
商业用房租赁协议书
2014/10/13 职场文书
师德师风学习材料
2014/12/19 职场文书
JavaScript 数组去重详解
2021/09/15 Javascript