微信小程序实现转盘抽奖


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.Validate验证库知识点的详解
Apr 26 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 Javascript
javascript实现类似java中getClass()得到对象类名的方法
Jul 27 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
Aug 06 Javascript
JavaScript 是什么意思
Sep 22 Javascript
微信小程序 loading(加载中提示框)实例
Oct 28 Javascript
使用Bootstrap美化按钮实例代码(demo)
Feb 03 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 Javascript
浅谈Vue.js组件(二)
Apr 09 Javascript
jquery分页优化操作实例分析
Aug 23 jQuery
微信小程序学习之自定义滚动弹窗
Dec 20 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
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
2013/11/27 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
用jscript实现列出安装的软件列表
2007/06/18 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
图片上传插件jquery.uploadify详解
2013/11/15 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
js实现蒙版效果
2020/01/11 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
Python的类实例属性访问规则探讨
2015/01/30 Python
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
python 实现登录网页的操作方法
2018/05/11 Python
python实现图片压缩代码实例
2019/08/12 Python
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
英文版销售经理个人求职信
2013/11/20 职场文书
科技节口号
2014/06/19 职场文书
实验室标语
2014/06/21 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android