小程序实现抽奖动画


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 相关文章推荐
javascript字典探测用户名工具
Oct 05 Javascript
JS中style属性
Oct 11 Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
May 07 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
Aug 11 Javascript
从零开始学习jQuery (二) 万能的选择器
Oct 01 Javascript
javascript实现原生ajax的几种方法介绍
Sep 21 Javascript
js获得参数的getParameter使用示例
Feb 26 Javascript
addEventListener 的用法示例介绍
May 07 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
Oct 28 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
Nov 10 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
Mar 05 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
Jul 07 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伪静态页面函数附使用方法
2008/06/20 PHP
php 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
PHP缩略图生成和图片水印制作
2017/01/07 PHP
JS判断不能为空实例代码
2013/11/26 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
Python内置函数之filter map reduce介绍
2014/11/30 Python
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
django中瀑布流写法实例代码
2019/10/14 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
python读取xml文件方法解析
2020/08/04 Python
Python内置函数property()如何使用
2020/09/01 Python
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
中专毕业生自我鉴定
2013/11/21 职场文书
初中校园广播稿
2014/02/02 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP
python爬虫框架feapde的使用简介
2021/04/20 Python
Node.js实现断点续传
2021/06/23 Javascript