小程序实现筛子抽奖


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 相关文章推荐
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
Sep 20 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
Jun 05 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
Jan 26 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
May 25 Javascript
详解微信小程序——自定义圆形进度条
Dec 29 Javascript
JS Select下拉框(支持输入模糊查询)
Feb 04 Javascript
jQuery实现checkbox的简单操作
Nov 18 jQuery
JS实现checkbox互斥(单选)功能示例
May 04 Javascript
js实现页面图片消除效果
Mar 24 Javascript
openlayers实现地图弹窗
Sep 25 Javascript
vue 解决IOS10低版本白屏的问题
Nov 17 Javascript
微信小程序实现自定义底部导航
Nov 18 Javascript
详解vue身份认证管理和租户管理
ES6 解构赋值的原理及运用
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
js Proxy的原理详解
May 25 #Javascript
解析原生JS getComputedStyle
80行代码写一个Webpack插件并发布到npm
Ajax请求超时与网络异常处理图文详解
May 23 #Javascript
You might like
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
为Python程序添加图形化界面的教程
2015/04/29 Python
python实现DES加密解密方法实例详解
2015/06/30 Python
Python 中的 else详解
2016/04/23 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
为什么相对PHP黑python的更少
2020/06/21 Python
vscode调试django项目的方法
2020/08/06 Python
利用python 读写csv文件
2020/09/10 Python
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
为什么使用接口?
2014/08/13 面试题
意外伤害赔偿协议书
2014/09/16 职场文书
单位委托书格式范本
2014/09/29 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
新入职员工工作总结
2015/10/15 职场文书