微信小程序实现转盘抽奖


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 相关文章推荐
jQuery maxlength文本字数限制插件
Apr 16 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
Apr 27 Javascript
node-http-proxy修改响应结果实例代码
Jun 06 Javascript
JS中如何比较两个Json对象是否相等实例代码
Jul 13 Javascript
简单实现jQuery上传图片显示预览功能
Jun 29 jQuery
无限循环轮播图之运动框架(原生JS实现)
Oct 01 Javascript
vue路由拦截及页面跳转的设置方法
May 24 Javascript
vue侧边栏动态生成下级菜单的方法
Sep 07 Javascript
浅谈React Event实现原理
Sep 20 Javascript
webpack dll打包重复问题优化的解决
Oct 10 Javascript
更强大的vue ssr实现预取数据的方式
Jul 19 Javascript
微信小程序全局变量的设置、使用、修改过程解析
Sep 24 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
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
很可爱的输入框
2008/08/03 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
JavaScript 的继承
2011/10/01 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
js Calender控件使用详解
2015/01/05 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
js正则相关知识点专题
2018/05/10 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
python实现用户登陆邮件通知的方法
2015/07/09 Python
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
绩效考核实施方案
2014/03/18 职场文书
开展读书活动总结
2014/06/30 职场文书
安全生产标语大全
2014/10/06 职场文书
简单的辞职信模板
2015/05/12 职场文书
数据库连接池
2021/04/06 MySQL
Python内置数据结构列表与元组示例详解
2021/08/04 Python
python可视化大屏库big_screen示例详解
2021/11/23 Python