小程序实现抽奖动画


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 相关文章推荐
国外Lightbox v2.03.3 最新版 下载
Oct 17 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
May 21 Javascript
node.js中的events.emitter.removeListener方法使用说明
Dec 10 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
easyui-datagrid特殊字符不能显示的处理方法
Apr 12 Javascript
VueJs组件prop验证简单介绍
Sep 12 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 Javascript
JS实现烟花爆炸效果
Mar 10 Javascript
vue-cli4项目开启eslint保存时自动格式问题
Jul 13 Javascript
在vant中使用时间选择器和popup弹出层的操作
Nov 04 Javascript
react中useState使用:如何实现在当前表格直接更改数据
Aug 05 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/07/14 PHP
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
python去掉空白行的多种实现代码
2018/03/19 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
大学生求职自荐信范文
2015/03/04 职场文书
南京南京观后感
2015/06/02 职场文书
大学军训心得体会800字
2016/01/11 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
Python Django模型详解
2021/10/05 Python
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang