小程序实现抽奖动画


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自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
Mar 28 Javascript
javascript中的self和this用法小结
Feb 08 Javascript
如何将网页表格内容导入excel
Feb 18 Javascript
js实现简单鼠标跟随效果的方法
Apr 10 Javascript
简介AngularJS的视图功能应用
Jun 17 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
Aug 01 Javascript
利用纯Vue.js构建Bootstrap组件
Nov 03 Javascript
详解js数组的完全随机排列算法
Dec 16 Javascript
详解Vue中添加过渡效果
Mar 20 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 Javascript
微信小程序动态显示项目倒计时
Jun 20 Javascript
解决vue刷新页面以后丢失store的数据问题
Aug 11 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
php购物车实现代码
2011/10/10 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
PHP开发注意事项总结
2015/02/04 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
babel基本使用详解
2017/02/17 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
Python实现的计数排序算法示例
2017/11/29 Python
分析Python读取文件时的路径问题
2018/02/11 Python
python实现贪吃蛇游戏
2020/03/21 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
详解python对象之间的交互
2020/09/29 Python
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
法院四风对照检查材料思想汇报
2014/10/06 职场文书
学前班语言教学计划
2015/01/20 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
在Docker容器中部署SQL Server
2022/04/11 Servers