小程序实现筛子抽奖


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查看html源文件
Nov 08 Javascript
JavaScript prototype属性深入介绍
Nov 27 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
Jul 28 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
Aug 22 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
Jun 06 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
Oct 29 Javascript
基于jQuery倒计时插件实现团购秒杀效果
May 13 Javascript
jquery显示隐藏元素的实现代码
May 19 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
Jul 05 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
Apr 06 Javascript
超轻量级的js时间库miment使用解析
Aug 02 Javascript
vue柱状进度条图像的完美实现方案
Aug 26 Javascript
详解vue身份认证管理和租户管理
ES6 解构赋值的原理及运用
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
js Proxy的原理详解
May 25 #Javascript
解析原生JS getComputedStyle
80行代码写一个Webpack插件并发布到npm
Ajax请求超时与网络异常处理图文详解
May 23 #Javascript
You might like
php公用函数列表[正则]
2007/02/22 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
javascript几个易错点记录
2014/11/26 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
Python count函数使用方法实例解析
2020/03/23 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
信息专业本科生个人的自我评价
2013/10/28 职场文书
项目经理岗位职责
2013/11/11 职场文书
财务人员个人求职信范文
2013/12/04 职场文书
不假外出检讨书
2014/01/27 职场文书
如何撰写岗位职责
2014/02/01 职场文书
聊城大学毕业生自荐书
2014/02/01 职场文书
前处理班长职位说明书
2014/03/01 职场文书
内衣营销方案
2014/03/15 职场文书
学习教师法的心得体会
2014/09/03 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫