小程序实现抽奖动画


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 相关文章推荐
kmock javascript 单元测试代码
Feb 06 Javascript
javascript模块化是什么及其优缺点介绍
Sep 02 Javascript
jQuery中die()方法用法实例
Jan 19 Javascript
jQuery实现字符串全部替换的方法
Dec 12 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
Mar 07 Javascript
react-redux中connect()方法详细解析
May 27 Javascript
vue watch深度监听对象实现数据联动效果
Aug 16 Javascript
详解Vue中watch的详细用法
Nov 28 Javascript
关于RxJS Subject的学习笔记
Dec 05 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
Apr 02 Javascript
tweenjs缓动算法的使用实例分析
Aug 26 Javascript
在vue+element ui框架里实现lodash的debounce防抖
Nov 13 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
python实现的一个p2p文件传输实例
2014/06/04 Python
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
python调用win32接口进行截图的示例
2020/11/11 Python
python爬取代理ip的示例
2020/12/18 Python
python statsmodel的使用
2020/12/21 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
优秀的计算机专业求职信范文
2013/12/27 职场文书
房屋出售协议书
2014/04/10 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
总账会计岗位职责
2015/04/02 职场文书
导游词之西递宏村
2019/12/10 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫