小程序实现抽奖动画


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帮助之CSS尺寸(五)outerHeight、outerWidth
Nov 14 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
Mar 25 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
Jun 05 Javascript
基于JavaScript实现文字超出部分隐藏
Feb 29 Javascript
一个炫酷的Bootstrap导航菜单
Dec 28 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
Jan 21 Javascript
jQuery 全选 全不选 事件绑定的实现代码
Jan 23 Javascript
JavaScript 截取字符串代码实例
Sep 05 Javascript
JS插入排序简单理解与实现方法分析
Nov 25 Javascript
vue中可编辑树状表格的实现代码
Oct 31 Javascript
vue实现可拖拽的dialog弹框
May 13 Vue.js
微信小程序实现文字从右向左无限滚动
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 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
面包屑导航详解
2017/12/07 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
2019/04/11 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
pycharm运行scrapy过程图解
2019/11/22 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
便利店投资的创业计划书
2014/01/12 职场文书
学校2014年度工作总结
2014/12/06 职场文书
材料采购员岗位职责
2015/04/03 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python
Python中的datetime包与time包包和模块详情
2022/02/28 Python
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技