小程序实现抽奖动画


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 相关文章推荐
限制textbox或textarea输入字符长度的JS代码
Oct 16 Javascript
Javascript 命名空间模式
Nov 01 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
Dec 20 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
Jan 11 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
Jan 06 Javascript
浅谈jquery回调函数callback的使用
Jan 30 Javascript
高效利用Angular中内置服务$http、$location等
Mar 22 Javascript
针对JavaScript中this指向的简单理解
Aug 26 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
Aug 21 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
Nov 30 Javascript
详解Vue中Axios封装API接口的思路及方法
Oct 10 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
PHP新建类问题分析及解决思路
2015/11/19 PHP
CI框架常用方法小结
2016/05/17 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
PDO::query讲解
2019/01/29 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
vue实现信息管理系统
2020/05/30 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
存储过程和函数的区别
2013/05/28 面试题
院药学专业个人求职信
2013/09/21 职场文书
函授本科毕业自我鉴定
2013/10/09 职场文书
小学德育工作经验交流材料
2014/05/22 职场文书
阅兵口号
2014/06/19 职场文书
园林技术专业求职信
2014/07/28 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
学生会感恩节活动方案
2014/10/11 职场文书