小程序实现抽奖动画


Posted in Javascript onApril 16, 2020

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

所有的抽奖都是由后台计算后得到的,前台只做动画展示

<view class='top-banner center'> <!-- 轮播展示中奖信息区域 -->
 <swiper autoplay="{{true}}" interval="{{1500}}" circular="{{true}}" vertical='{{true}}'>
  <block wx:for="{{prizeInfo}}" wx:key="index">
   <swiper-item>
    <view>{{item.name}}{{item.prize}}</view>
   </swiper-item>
  </block>
 </swiper>
</view>
<!-- 轮播结束 抽奖转盘 -->
<view class='turntable' bindtap='doLottery'>
 <image class='turntable-bj' style="transition:all {{time?time:'3s ease-in'}}; transform:rotate({{transformDeg + 'deg'}}) " src='../../../img/turntable.png'></image>
 <image class='arrow' src='../../../img/arrow.png'>
 </image>
</view>

js:

const app = getApp();

var index = {
 data:{ 
  prizeInfo:[
   {
    name:'qiphon',
    prize:'5元'
   },
   {
    name:'qiphon23423',
    prize:'53元'
   },
   {
    name:'qipsdfhon',
    prize:'35元'
   }
  ],
  transformDeg:0, // 旋转角度
  transition:'all 3s cubic-bezier(0.005, 1.340, 1.000, 0.865)',
  time:'999s'
 },
 onLoad(opt){
  console.log(opt)

 },
 onReady(){
  this.animation = wx.createAnimation({
   timingFunction:'esse-in-out',
   duration:2000
  });
  this.animationDeg = 360;
 },
 loadCoupons(){ // 加载获奖信息
  
 },
 doLottery(){ // 抽奖
  var _this = this;
  if(this.aniRotate)return;
  this.aniRotate = true;
  this.setData({
   transformDeg:this.data.transformDeg + 360*900,
   time:'100s ease'
  })
  setTimeout(function(){
   console.log('请求完成'+_this.data.transformDeg) // setTimeout 模拟ajax请求
   _this.setData({
    transformDeg:-360*4,
    time:'3s ease'
   })
   setTimeout(function(){
    console.log('返回结果'+_this.data.transformDeg)
    _this.setData({
     transformDeg:360*2 + 0,
     time:'6s cubic-bezier(0.000, 0.765, 0.000, 0.955)'
    })
    setTimeout(function(){
     _this.aniRotate = false;
     wx.showModal({
      title:'中奖信息',
      content:'恭喜获得奖品'
     })
    },6000)
   },2000)
  },3000)
 },
}
Page(index);

css:

.top-banner{
 background: #fff;
 padding:20rpx;
}
.top-banner swiper{
 height: 50rpx;
 line-height: 50rpx;
}
/* 转盘 */
.turntable{
 position: relative;
 width: 100%;
 height: 530rpx;
}
.turntable-bj{
 display: block;
 margin:0 auto;
 width:600rpx;
 height: 530rpx;
}
.turntable .arrow{
 position: absolute;
 top:0;
 right:0;
 left:0;
 bottom:110rpx;
 margin:auto;
 width:93.5rpx;
 height: 212rpx;
}

想要学习更多关于抽奖功能的实现,请参考此专题:抽奖功能

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

Javascript 相关文章推荐
jquery实现动态操作select选中
Feb 11 Javascript
浅谈javascript中onbeforeunload与onunload事件
Dec 10 Javascript
浅析javascript函数表达式
Feb 10 Javascript
JavaScript学习笔记之ES6数组方法
Mar 25 Javascript
详解vue.js组件化开发实践
Dec 14 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
Mar 21 Javascript
微信小程序 slot踩坑的解决
Apr 01 Javascript
vue回到顶部监听滚动事件详解
Aug 02 Javascript
详解Element-UI中上传的文件前端处理
Aug 07 Javascript
JavaScript Image对象实现原理实例解析
Aug 26 Javascript
js实现头像上传并且可预览提交
Dec 25 Javascript
微信小程序实现文字从右向左无限滚动
Nov 18 #Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
Dec 28 #Javascript
小程序文字跑马灯效果
Dec 28 #Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 #Javascript
Angular使用Restful的增删改
Dec 28 #Javascript
原生js实现公告滚动效果
Jan 10 #Javascript
微信小程序实现文字无限轮播效果
Dec 28 #Javascript
You might like
Zend的MVC机制使用分析(一)
2013/05/02 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
电子商务专员岗位职责
2013/12/11 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
国庆节演讲稿
2014/05/27 职场文书
大学生工作自荐书
2014/06/16 职场文书
应届大学生自荐书
2014/06/17 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
运动会开幕式主持词
2015/07/01 职场文书
python实现简单聊天功能
2021/07/07 Python
php去除数组中为0的元素的实例分析
2021/11/17 PHP