微信小程序实现转盘抽奖


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 相关文章推荐
网页和浏览器兼容性问题汇总(draft1)
Jun 01 Javascript
javascript showModalDialog模态对话框使用说明
Dec 31 Javascript
jquery scroll()区分横向纵向滚动条的方法
Apr 04 Javascript
JavaScript中的console.time()函数详细介绍
Dec 29 Javascript
javascript HTML+CSS实现经典橙色导航菜单
Feb 16 Javascript
Node.js返回JSONP详解
May 18 Javascript
vue打包后显示空白正确处理方法
Nov 01 Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
Aug 20 Javascript
vue 解决IOS10低版本白屏的问题
Nov 17 Javascript
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
Vue+Flask实现图片传输功能
Apr 01 Vue.js
结合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
在命令行下运行PHP脚本[带参数]的方法
2010/01/22 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
js实现旋转木马效果
2017/03/17 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
pycharm安装图文教程
2017/05/02 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
2018/10/31 Python
Django objects的查询结果转化为json的三种方式的方法
2018/11/07 Python
Django实现文件上传和下载功能
2019/10/06 Python
python之array赋值技巧分享
2019/11/28 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
三个Unix的命令面试题
2015/04/12 面试题
公益活动策划方案
2014/01/09 职场文书
开学典礼决心书
2014/03/11 职场文书
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android