小程序实现抽奖动画


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 相关文章推荐
js操作二级联动实现代码
Jul 27 Javascript
初学js 新节点的创建 删除 的步骤
Jul 04 Javascript
Jquery图片滚动与幻灯片的实例代码
Apr 08 Javascript
js操作数据库实现注册和登陆的简单实例
May 26 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
Mar 14 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
H5手机端多文件上传预览插件
Apr 21 Javascript
在vue项目中安装使用Mint-UI的方法
Dec 27 Javascript
ES6中Promise的使用方法实例总结
Feb 18 Javascript
JavaScript如何判断对象有某属性
Jul 03 Javascript
Jquery cookie插件实现原理代码解析
Aug 04 jQuery
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
Sep 27 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
一个基于PDO的数据库操作类
2011/03/24 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
JQuery插件Marquee.js实现无缝滚动效果
2016/04/26 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
Python Mysql自动备份脚本
2008/07/14 Python
Python装饰器基础详解
2016/03/09 Python
Python中matplotlib中文乱码解决办法
2017/05/12 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
Django中使用Celery的教程详解
2018/08/24 Python
Python lambda表达式用法实例分析
2018/12/25 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
python脚本后台执行方式
2019/12/21 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
canvas像素画板的实现代码
2018/11/21 HTML / CSS
Myprotein瑞典官方网站:畅销欧洲英国运动营养品牌
2018/01/22 全球购物
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
《花木兰》教学反思
2014/04/09 职场文书
护士年终个人总结
2015/02/13 职场文书
人事任命通知书
2015/04/21 职场文书
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers