小程序实现筛子抽奖


Posted in Javascript onMay 26, 2021

本文实例为大家分享了小程序实现筛子抽奖的具体代码,供大家参考,具体内容如下

效果图

小程序实现筛子抽奖

<!--pages/shaizi/index.wxml-->
<view class="container">
  <view class="shaizi_box {{activeTrue}}" style="transform: rotateX({{rotateX}}deg) rotateY({{rotateY}}deg) rotateZ({{rotateZ}}deg);">
    <view class="shaizi">1</view>
    <view class="shaizi">2</view>
    <view class="shaizi">3</view>
    <view class="shaizi">4</view>
    <view class="shaizi">5</view>
    <view class="shaizi">6</view>
  </view>
  <text class="view"></text>
  <button bindtap="gamePlay">PLAY</button>
</view>
// pages/shaizi/index.js
var dingshiqi1 = 0;
var dingshiqi2 = 0;
var dingshiqi3 = 0;
Page({
 
  /**
   * 页面的初始数据
   */
  data: {
    activeTrue:"active1",
    rotateX:0,
    rotateY:0,
    rotateZ:0,
  },
 
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    
  },
  gamePlay:function(){
    let _that = this;
    this.setData({
      activeTrue:"active2",
      rotateX:0,
      rotateY:0,
      rotateZ:0,
    })
    clearInterval(dingshiqi3)
    let _posible = [
      { value: 1, x: 0, y: 0 },
      { value: 6, x: 180, y: 0 },
      { value: 3, x: 0, y: -90 },
      { value: 4, x: 0, y: 90 },
      { value: 5, x: -90, y: 0 },
      { value: 2, x: 90, y: 0 },
     ]
    // 准备抽取的随机数
    let _random = Math.floor(Math.random() * 6);
    dingshiqi1 = setTimeout(() => {
      _that.setData({
        rotateX:360,
        rotateY:250,
        rotateZ:0,
      })
     }, 0);
     dingshiqi2 = setTimeout(() => {
      _that.setData({
        rotateX:_posible[_random].x,
        rotateY:_posible[_random].y,
      })
      dingshiqi3 = setTimeout(() => {
        _that.setData({
          activeTrue:"active1",
        })
      }, 4500);
     }, 800);
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
 
  },
 
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
 
  },
 
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
 
  },
 
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
 
  },
 
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
 
  },
 
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
 
  },
 
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
 
  }
})
/* pages/shaizi/index.wxss */
@keyframes rotate {
  to {
   transform: rotateX(360deg) rotateY(250deg);
  }
 }
 @keyframes shaiziCss{
  20%{
   transform: rotateX(20deg);
  }
  60%{
   transform: rotateX(20deg) rotateY(200deg);
  }
  100%{
   transform: rotateX(100deg) rotateY(1000deg) rotateZ(-100deg);
  }
 }
 .shaizi_box {
  width: 200rpx;
  height: 200rpx;
  margin: 200rpx auto;
  position: relative;
  transform-style: preserve-3d;
  animation-duration: 3s;
  animation-timing-function: linear;
  transition: all 1s;
 }
.shaizi_box.active1{
  animation: rotate 5s linear 0s infinite alternate !important;
}
.shaizi_box.active2{
  animation: shaiziCss 2s !important;
}
.shaizi_box .shaizi {
  width: 200rpx;
  height: 200rpx;
  display: flex;
  position: absolute;
  left: 0;
  top: 0;
  border: 1px solid #000;
  background: rgb(253, 250, 250);
  border-radius: 20rpx;
  font-size: 100rpx;
  color: red;
  text-align: center;
 }
 .shaizi:nth-child(1) {
  justify-content: center;
  align-items: center;
  transform: translateZ(100rpx);
 }
 .shaizi:nth-child(2) {
  justify-content: space-around;
  align-items: center;
  transform: rotateX(-90deg) translateZ(100rpx);
 }
 .shaizi:nth-child(3) {
  justify-content: space-around;
  align-items: center;
  flex-wrap: wrap;
  transform: rotateY(90deg) translateZ(100rpx);
 }
 .shaizi:nth-child(4) {
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  transform: rotateY(-90deg) translateZ(100rpx);
 }
 .shaizi:nth-child(5) {
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  transform: rotateX(90deg) translateZ(100rpx);
 }
 .shaizi:nth-child(6) {
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  transform: rotateX(-180deg) translateZ(100rpx);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javaScript 读取和设置文档元素的样式属性
Apr 14 Javascript
jQuery取得select选择的文本与值的示例
Dec 09 Javascript
js自动查找select下拉的菜单并选择(示例代码)
Feb 26 Javascript
jQuery监控文本框事件并作相应处理的方法
Apr 16 Javascript
Vue 过渡实现轮播图效果
Mar 27 Javascript
详解用node.js实现简单的反向代理
Jun 26 Javascript
jQuery扩展_动力节点Java学院整理
Jul 05 jQuery
Angular.js通过自定义指令directive实现滑块滑动效果
Oct 13 Javascript
JavaScript实现修改伪类样式
Nov 27 Javascript
vue中使用极验验证码的方法(附demo)
Dec 04 Javascript
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
Javascript 解构赋值详情
Nov 17 Javascript
详解vue身份认证管理和租户管理
ES6 解构赋值的原理及运用
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
js Proxy的原理详解
May 25 #Javascript
解析原生JS getComputedStyle
80行代码写一个Webpack插件并发布到npm
Ajax请求超时与网络异常处理图文详解
May 23 #Javascript
You might like
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
php数组合并的二种方法
2014/03/21 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
js 通用订单代码
2013/12/23 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
Python算法之图的遍历
2017/11/16 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
Python中base64与xml取值结合问题
2019/12/22 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
Flask处理Web表单的实现方法
2021/01/31 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
经理秘书找工作求职信
2013/12/19 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
古诗之爱国古诗5首
2019/09/20 职场文书
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
Java SSM配置文件案例详解
2021/08/30 Java/Android