小程序实现抽奖动画


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 相关文章推荐
15 个 JavaScript Web UI 库
May 19 Javascript
jquery each()源代码
Feb 14 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
Mar 13 Javascript
js随机生成字母数字组合的字符串 随机动画数字
Sep 02 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
Sep 22 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
Sep 23 Javascript
json传值以及ajax接收详解
May 24 Javascript
原生js实现选项卡功能
Mar 08 Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 Javascript
Vue分页插件的前后端配置与使用
Oct 09 Javascript
vue模块移动组件的实现示例
May 20 Javascript
JS绘图Flot如何实现动态可刷新曲线图
Oct 16 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
phpfans留言版用到的install.php
2007/01/04 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
PDO::query讲解
2019/01/29 PHP
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
详解jQuery停止动画——stop()方法的使用
2016/12/14 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
js轮播图无缝滚动效果
2017/06/17 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
python决策树之C4.5算法详解
2017/12/20 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
Python高斯消除矩阵
2019/01/02 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
Python简单I/O操作示例
2019/03/18 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
Html5游戏开发之乒乓Ping Pong游戏示例(三)
2013/01/21 HTML / CSS
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
内科护士实习自我鉴定
2013/10/17 职场文书
大学生求职自荐信
2013/12/12 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
千手观音观后感
2015/06/03 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
导游词之广州陈家祠
2019/10/21 职场文书