vue大转盘抽奖,vue滚动抽奖

  vue大转盘抽奖,vue滚动抽奖

  这篇文章主要为大家详细介绍了某视频剪辑软件实现宫格轮转抽奖,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  某视频剪辑软件实现宫格轮转抽奖(类似穿越火线的xx轮回),供大家参考,具体内容如下

  不做过多的解说,直接上代码啦。关键的代码都写了注释,很容易理解。直接复制即可使用!

  另外钢性铸铁部分依赖节点-sass、sass-loader、没有安装的安装一下,已有的小伙伴直接跳过~~

  节点-萨斯:^4.12.0,

  "萨斯-装载机":^8.0.2,

  模板

  div class=home

  div class=home-container

  div class=home-container-line

  差异

  家用集装箱线箱

  v-for=列表。切片(0,5)中的项目

  :key=item.index

  :class="{ selected:item。活动} "

  {{ item.label }}

  /div

  /div

  div class=home-container-line

  差异

  家用集装箱线箱

  v-for=列表。切片(11,12)中的项目

  :key=item.index

  :class="{ selected:item。活动} "

  {{ item.label }}

  /div

  div class= home-container-line-BTN @ click= handle click :disable= is animate /div

  差异

  家用集装箱线箱

  v-for=列表。切片(5,6)中的项目

  :key=item.index

  :class="{ selected:item。活动} "

  {{ item.label }}

  /div

  /div

  div class=home-container-line

  差异

  家用集装箱线箱

  数组中的v-for=项。原型。反转。呼叫(列表。slice(6,11))

  :key=item.index

  :class="{ selected:item。活动} "

  {{ item.label }}

  /div

  /div

  /div

  /div

  /模板

  脚本

  导出默认值{

  名字:"幸运",

  data() {

  返回{

  列表:[

  {标签: 未中奖,val: 1,img: ,索引:0,active: false },

  {标签: 大保健,val: 2,img: ,索引:1,active: false },

  { label: iPhone13 ,val: 3,img: ,index: 2,active: false },

  { label: MacBook Pro ,val: 4,img: ,index: 3,active: false },

  { label: MacBook Air ,val: 5,img: ,index: 4,active: false },

  {标签: 1积分,val: 6,img: ,索引:5,active: false },

  {标签: 5积分,val: 7,img: ,索引:6,active: false },

  {标签: 10积分,val: 8,img: ,索引:7,active: false },

  {标签: 小爱同学,val: 9,img: ,索引:8,active: false },

  {标签: 安慕希酸奶,val: 10,img: ,索引:9,active: false },

  {标签: 清空购物车,val: 11,img: ,索引:10,active: false },

  {标签: 50元话费,val: 12,img: ,索引:11,active: false },

  ],

  isAnimate: false,//为真实的时代表正在抽奖,当前抽奖未结束时点击抽奖按钮无效

  跳转指数:数学。地板(数学。random()* 12),//抽奖轮跳时的索引

  跳转时间:0,//正在轮跳的时间

  jumpingTotalTime: 0,//轮跳的时间总量,基于期间变量加上一个0~1000 之间的随机数组成

  跳转更改:0,//轮跳速率峰值,基于速度变量加上一个0~3 之间的随机数组成

  时长:4500,//持续时间

  速度:300,//速率

  };

  },

  方法:{

  handleClick() {

  if(this.isAnimate)返回;

  这个。跳跃时间=0;

  这个。跳到时间=数学。random()* 1000这个。持续时间;

  这个。跳跃变化=数学。random()* 3这个。速度;

  这个。动画圆(这个。跳跃指数);

  },

  动画环绕(索引){

  this.isAnimate=true

  如果(这个。跳索引这个。列表。长度-1)这个。跳跃指数;

  如果(这个。跳跃指数=这个。列表。长度-1)这个。跳转指数=0;

  this.jumpingTime=100//每一帧执行定时器方法所消耗的时间

  //如果当前时间大于时间总量后,退出动画,清算奖品

  如果(这个。跳跃时间=这个。跳跃总时间){

  this.isAnimate=false

  if(index==0) {

  警报(` 1很遗憾没有抽到奖品,再接再厉哦~`);

  }

  否则{

  警报(` 1恭喜您抽到了:${this.list[index].标签} `)

  }

  返回

  }

  //轮训动画

  if (index=this.list.length-1) {

  索引=0;

  这份名单. active=false

  这个。列表[索引]。活动=真

  index-=1;

  }否则{

  这个。列表[索引]。活动=假

  这个。列表[索引1]。活动=真

  }

  setTimeout(()={

  this.animateRound(索引1);

  },this.easeOut(this.jumpingTime,0,this.jumpingChange,this。跳到totime));

  },

  /**

  * 缓动函数,由快到慢

  * @param {Num} t当前时间

  * @param {Num} b初始值

  * @param {Num} c变化值

  * @param {Num} d持续时间

  */

  easeOut(t,b,c,d) {

  if ((t /=d/2) 1)返回(c/2)* t * t b;

  return(-c/2)*(-t *(t-2)-1)b;

  },

  },

  };

  /脚本

  样式lang=scss 范围。居中{

  显示器:flex

  对齐-内容:居中;

  对齐-项目:居中;

  }。主页{

  填充:0;

  边距:0;

  宽度:100%;

  高度:calc(100 VH-16px);

  背景图像:线性渐变(25度、#30007c、#464995、#4d83ad、# 41 bfc 4);

  @延伸。居中;

  -容器

  宽度:1000像素

  高度:600像素

  -行{

  宽度:100%;

  身高:198像素

  显示器:flex

  -盒子{

  flex:1;

  溢出:隐藏;

  保证金:5px 3px 5px 3px

  @延伸。居中;

  背景:# fff

  转场:全。3s;

  }

  -btn {

  位置:相对;

  flex:3;

  溢出:隐藏;

  保证金:5px 3px 3px 3px

  @延伸。居中;

  盒影:0 1px 10px 0px # cf 5531

  背景图像:线性梯度(

  25度,

  #cf5531,

  #d0853a,

  #cdaf43,

  #c4d84d

  );

  光标:指针;

  :活动{

  背景图像:线性梯度(

  25度,

  #3f3e41,

  #6d6340,

  #9a8b39,

  #c9b629

  );

  }

  *之前{

  位置:绝对;

  内容: 点击抽奖;

  字体大小:2.5雷姆;

  颜色:# fff

  字体粗细:粗体;

  }

  }

  }

  }

  }。已选择{

  背景:rgba($color: #f6e58d,$ alpha:0.5);

  动画-名字:闪烁

  动画——时长:3s;

  动画-迭代-计数:无限;

  }

  @关键帧闪烁{

  0% {背景:# ffbe76}

  100% {背景:# f 6 e 58d}

  }

  /风格

  效果图:

  最后特别说明一下,概率完全是随机的。目前还没有特别好的思路去调整中奖的概率,如果有比较好的想法的小伙伴们也非常欢迎一起来探讨一下

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: