小程序实现筛子抽奖


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+XMLHttpRequest+asp.net无刷新读取数据库数据
Aug 09 Javascript
jquery validate 自定义验证方法介绍 日期验证
Feb 27 Javascript
使用Node.js配合Nginx实现高负载网络
Jun 28 Javascript
JS实现可展开折叠层的鼠标拖曳效果
Oct 09 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
Sep 21 Javascript
JavaScript实现无穷滚动加载数据
May 06 Javascript
JavaScript 巧学巧用
May 23 Javascript
详解vue父子组件间传值(props)
Jun 29 Javascript
React 子组件向父组件传值的方法
Jul 24 Javascript
JS动态修改网页body的背景色实例代码
Oct 07 Javascript
ES6的Fetch异步请求的实现方法
Dec 07 Javascript
js实现网页同时进行多个倒计时功能
Feb 25 Javascript
详解vue身份认证管理和租户管理
ES6 解构赋值的原理及运用
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
js Proxy的原理详解
May 25 #Javascript
解析原生JS getComputedStyle
80行代码写一个Webpack插件并发布到npm
Ajax请求超时与网络异常处理图文详解
May 23 #Javascript
You might like
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
详解jquery uploadify 上传文件
2013/11/09 Javascript
jquery attr方法获取input的checked属性问题
2014/05/26 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
JavaScript之面向对象_动力节点Java学院整理
2017/06/29 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
vue 项目地址去掉 #的方法
2018/10/20 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
python实现一个简单的ping工具方法
2019/01/31 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
机修工岗位职责
2013/11/24 职场文书
残疾人小组计划书
2014/04/27 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
党的生日演讲稿
2014/09/10 职场文书
刑事代理授权委托书
2014/09/17 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
分享7个 Python 实战项目练习
2022/03/03 Python