微信小程序实现转盘抽奖


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 01 Javascript
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
Nov 30 Javascript
jQuery 连续列表实现代码
Dec 21 Javascript
jquery 单击li防止重复加载的实现代码
Dec 24 Javascript
js网页侧边随页面滚动广告效果实现
Apr 14 Javascript
JS实现根据当前文字选择返回被选中的文字
May 21 Javascript
jQuery中insertBefore()方法用法实例
Jan 08 Javascript
基于jquery实现三级下拉菜单
May 10 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
Jun 22 Javascript
JS轮播图中缓动函数的封装
Nov 25 Javascript
xmlplus组件设计系列之树(Tree)(9)
May 02 Javascript
vue如何将v-for中的表格导出来
May 07 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
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
jquery中filter方法用法实例分析
2015/02/06 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
python连接mongodb密码认证实例
2018/10/16 Python
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
计算机求职信
2013/12/01 职场文书
图书室管理制度
2014/01/19 职场文书
电话营销开场白
2015/05/29 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
2016年端午节寄语
2015/12/04 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python