返回顶部
首页 > 资讯 > 精选 >vue如何实现大转盘抽奖功能
  • 258
分享到

vue如何实现大转盘抽奖功能

2023-06-29 10:06:34 258人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“Vue如何实现大转盘抽奖功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何实现大转盘抽奖功能”这篇文章吧。效果图如下中奖提示代码如下<template&

这篇文章主要为大家展示了“Vue如何实现大转盘抽奖功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何实现大转盘抽奖功能”这篇文章吧。

效果图如下

vue如何实现大转盘抽奖功能

中奖提示

vue如何实现大转盘抽奖功能

代码如下

<template>  <div class="dial" v-wechat-title="$route.meta.title">    <div class="times">抽奖次数{{LuckyClick}}</div>    <!-- 转盘包裹 -->    <div class="rotate">      <!-- 绘制圆点 -->      <div        :class="'circle circle_'+index"        v-for="(item,index) in circleList"        :key="index"        :      ></div>      <!-- 转盘图片 -->      <img        class="dish"        src="../../assets/dial.png"        :      />      <!-- 指针图片 -->      <img class="pointer" src="../../assets/click.png" @click="start" />    </div>  </div></template> <script>var light_timer; //灯光定时器 export default {  name: "dial",  data() {    return {      LuckyClick: 3,      circleList: [], //原点设置      colorCircleFirst: "#FE4D32", //圆点颜色      colorCircleSecond: "#fff", //圆点颜色       cat: 45, //总共8个扇形区域,每个区域约45度      isAllowClick: true, //是否能够点击      rotate_deg: 0, //指针旋转的角度      rotate_transition: "transfORM 3s ease-in-out" //初始化选中的过度属性控制    };  },   components: {    // Calendar: Calendar  },  created() {    this.showcircleList();  },   watch: {},   mounted() {},   methods: {    //绘制圆点设置    showcircleList() {      let circleList = [];      for (var i = 0; i < 16; i++) {        circleList.push(i);      }      this.circleList = circleList;      this.light();    },     //闪动效果    light: function() {      var that = this;      clearInterval(light_timer);      light_timer = setInterval(function() {        if (that.colorCircleFirst == "#FE4D32") {          that.colorCircleFirst = "#fff";          that.colorCircleSecond = "#FE4D32";        } else {          that.colorCircleFirst = "#FE4D32";          that.colorCircleSecond = "#fff";        }      }, 300); //设置圆点闪烁的效果    },     start() {      if (this.LuckyClick == 0) {        alert("机会已经用完了");        return;      }      this.rotating();    },     rotating() {      if (!this.isAllowClick) return;      this.isAllowClick = false;      this.rotate_transition = "transform 3s ease-in-out";      this.LuckyClick--;      var rand_circle = 5; //默认多旋转5圈      //   var winningIndex = Math.floor(Math.random() * 8); //获奖的下标   0-7   没有概率每个平均      var winningIndex = this.set(); //设置了概率的       console.log(winningIndex);      var randomDeg = 360 - winningIndex * 45; //当前下标对应的角度    45是总共8个扇形区域,每个区域约45度       var deg = rand_circle * 360 + randomDeg; //将要旋转的度数  由于是顺时针的转动方向需要用360度来减      this.rotate_deg = "rotate(" + deg + "deg)";       var that = this;      setTimeout(function() {        that.isAllowClick = true;        that.rotate_deg = "rotate(" + 0 + "deg)"; //定时器关闭的时候重置角度        that.rotate_transition = "";         if (winningIndex == 0) {          alert("恭喜您,IphoneX");        } else if (winningIndex == 1) {          alert("恭喜您,获得10元现金");        } else if (winningIndex == 2) {          alert("很遗憾,重在参与");        } else if (winningIndex == 3) {          alert("恭喜您,获得30元现金");        } else if (winningIndex == 4) {          alert("恭喜您,获得20元现金");        } else if (winningIndex == 5) {          alert("恭喜您,获得50元现金");        } else if (winningIndex == 6) {          alert("恭喜您,获得5元现金");        } else if (winningIndex == 7) {          alert("恭喜您,获得100元现金");        }      }, 3500);    },     //设置概率    set() {      var winIndex;    //方法1    //   if (Math.floor(Math.random() * 100) < 30) {    //     console.log("30%的概率,重在参与");    //     winIndex = 2;    //   } else if (Math.floor(Math.random() * 100) < 55) {    //     console.log("25%的概率,5元");    //     winIndex = 6;    //   } else if (Math.floor(Math.random() * 100) < 75) {    //     console.log("20%的概率,10元");    //     winIndex = 1;    //   } else if (Math.floor(Math.random() * 100) < 85) {    //     console.log("10%的概率,20元");    //     winIndex = 4;    //   } else if (Math.floor(Math.random() * 100) < 92) {    //     console.log("7%的概率,30元");    //     winIndex = 3;    //   } else if (Math.floor(Math.random() * 100) < 97) {    //     console.log("5%的概率,50元");    //     winIndex = 5;    //   } else if (Math.floor(Math.random() * 100) < 99) {    //     console.log("2%的概率,100元");    //     winIndex = 7;    //   } else if (Math.floor(Math.random() * 100) == 99) {    //     console.log("1%的概率,IphoneX");    //     winIndex = 0;    //   }             //方法2      var __rand__ = Math.random();      if (__rand__ < 0.3) winIndex = 2;      else if (__rand__ < 0.55) winIndex = 6;      else if (__rand__ < 0.75) winIndex = 1;      else if (__rand__ < 0.85) winIndex = 4;      else if (__rand__ < 0.92) winIndex = 3;      else if (__rand__ < 0.97) winIndex = 5;      else if (__rand__ < 0.99) winIndex = 7;      else if (__rand__ = 0.99) winIndex = 0;       return winIndex;    }  },   computed: {}};</script>  <style  scoped lang="sCSS">@import "../../common/common";.times {  text-align: center;  line-height: 0.8rem;  background: #fff;}.rotate {  width: 6.1rem;  height: 6.1rem;  background: #ffbe04;  border-radius: 50%;  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  position: absolute;  top: 48%;  left: 50%;  transform: translate(-50%, -50%);} .rotate .dish {  width: 5.5rem;  height: 5.5rem;} .pointer {  width: 1.39rem;  height: 2.03rem;  position: absolute;  top: 46%;  left: 50%;  transform: translate(-50%, -50%);} .rotate .circle {  position: absolute;  display: block;  border-radius: 50%;  height: 0.16rem;  width: 0.16rem;  background: black;} .rotate .circle_0 {  top: 0.08rem;  left: 2.92rem;} .rotate .circle_1 {  top: 0.28rem;  left: 4.05rem;} .rotate .circle_2 {  top: 0.86rem;  left: 4.95rem;} .rotate .circle_3 {  top: 1.85rem;  left: 5.65rem;} .rotate .circle_4 {  top: 2.85rem;  right: 0.1rem;} .rotate .circle_5 {  bottom: 1.89rem;  right: 0.29rem;} .rotate .circle_6 {  bottom: 0.96rem;  right: 0.88rem;} .rotate .circle_7 {  bottom: 0.34rem;  right: 1.76rem;} .rotate .circle_8 {  bottom: 0.06rem;  right: 3.06rem;} .rotate .circle_9 {  bottom: 0.28rem;  left: 1.9rem;} .rotate .circle_10 {  bottom: 0.96rem;  left: 0.88rem;} .rotate .circle_11 {  bottom: 1.82rem;  left: 0.28rem;} .rotate .circle_12 {  top: 2.9rem;  left: 0.1rem;} .rotate .circle_13 {  top: 1.9rem;  left: 0.28rem;} .rotate .circle_14 {  top: 1rem;  left: 0.86rem;} .rotate .circle_15 {  top: 0.32rem;  left: 1.76rem;}</style>

本文中用到的图片

大转盘图片如下

vue如何实现大转盘抽奖功能

指针的图片如下:

vue如何实现大转盘抽奖功能

以上是“vue如何实现大转盘抽奖功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: vue如何实现大转盘抽奖功能

本文链接: https://lsjlt.com/news/324240.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue如何实现大转盘抽奖功能
    这篇文章主要为大家展示了“vue如何实现大转盘抽奖功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何实现大转盘抽奖功能”这篇文章吧。效果图如下中奖提示代码如下<template&...
    99+
    2023-06-29
  • vue实现大转盘抽奖功能
    本文实例为大家分享了vue实现大转盘抽奖的具体代码,供大家参考,具体内容如下 效果图如下 中奖提示 代码如下 <template>   <div class="...
    99+
    2024-04-02
  • VUE实现大转盘抽奖
    目录UI初始参考各值参考图方案分析-参数配置核心思路:关于旋转位置参数配置实现逻辑组件使用抽奖效果结语UI 老规矩,先看下静态UI,以便于有个图像概念 初始参考各值参考图 方案...
    99+
    2024-04-02
  • vue实现简单转盘抽奖功能
    本文实例为大家分享了vue实现简单转盘抽奖的具体代码,供大家参考,具体内容如下 样式请大家忽略(自己调),主要看JS代码实现,点击按钮后调用start方法,判断是否在转动状态,如果...
    99+
    2024-04-02
  • js实现转盘抽奖功能
    本文实例为大家分享了js实现转盘抽奖功能的具体代码,供大家参考,具体内容如下 效果:点击抽奖按钮,转盘开始旋转数圈后停止 示例: 抽奖html代码: <!DOCTYPE htm...
    99+
    2024-04-02
  • vue怎么实现简单转盘抽奖功能
    本篇内容介绍了“vue怎么实现简单转盘抽奖功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!样式请大家忽略(自己调),主要看JS代码实现,点...
    99+
    2023-06-29
  • jquery实现九宫格大转盘抽奖功能
    本篇内容主要讲解“jquery实现九宫格大转盘抽奖功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery实现九宫格大转盘抽奖功能”吧! 一、用...
    99+
    2024-04-02
  • 如何实现纯CSS3大转盘抽奖
    这篇文章给大家分享的是有关如何实现纯CSS3大转盘抽奖的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。HTML<section class="gb-whe...
    99+
    2024-04-02
  • 使用vue怎么实现一个转盘抽奖功能
    本篇文章为大家展示了使用vue怎么实现一个转盘抽奖功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Vue的优点Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运...
    99+
    2023-06-07
  • java如何实现抽奖功能
    本篇内容主要讲解“java如何实现抽奖功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java如何实现抽奖功能”吧!Java可以用来干什么Java主要应用于:1. web开发;2. Andro...
    99+
    2023-06-14
  • 如何实现Jquery转盘抽奖程序
    这篇文章主要介绍了如何实现Jquery转盘抽奖程序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基于Jquery的Javascript转盘抽...
    99+
    2024-04-02
  • 基于JavaScript实现轮盘抽奖功能
    目录实现步骤html代码:css代码:js代码:不知道今天自己该吃什么,一招帮你解决选择困难症。通过html+css+js实现一个轮盘抽奖功能。我们可以将平时吃的饭菜输入到代码中,每...
    99+
    2023-01-13
    js轮盘抽奖 js抽奖
  • vue如何实现宫格轮转抽奖
    小编给大家分享一下vue如何实现宫格轮转抽奖,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vue实现宫格轮转抽奖(类似穿越火线的xx轮回),供大家参考,具体内容如下不做过多的解说,直接上代码啦。关键的代码都写了注释,很容易...
    99+
    2023-06-25
  • java如何实现幸运抽奖功能
    本篇内容介绍了“java如何实现幸运抽奖功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、任务模拟注册登录幸运抽奖全过程2、主要功能:注...
    99+
    2023-06-29
  • Redis 抽奖大转盘的实战示例
    目录1. 项目介绍2. 项目演示3. 表结构4. 项目搭建4.1 依赖4.2 YML配置4.3 代码生成4.4 Redis 配置4.5 常量管理4.6 业务代码4.7 总结5. 项目...
    99+
    2024-04-02
  • Android自定义View如何实现QQ运动积分转盘抽奖功能
    这篇文章主要讲解了Android自定义View如何实现QQ运动积分转盘抽奖功能,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。因为偶尔关注QQ运动, 看到QQ运动的积分抽奖界面比较有意思,所以就尝试用自定义Vie...
    99+
    2023-05-30
    android view roi
  • JS旋转实现转盘抽奖效果
    本文实例为大家分享了JS旋转实现转盘抽奖效果的具体代码,供大家参考,具体内容如下 闲来没事,做了一个模拟转盘抽奖的HTML&JS的效果: 可以在设置的时候,选择几个区域,并...
    99+
    2024-04-02
  • vue实现宫格轮转抽奖
    vue实现宫格轮转抽奖(类似穿越火线的xx轮回),供大家参考,具体内容如下 不做过多的解说,直接上代码啦。关键的代码都写了注释,很容易理解。直接复制即可使用! 另外css部分依赖 n...
    99+
    2024-04-02
  • 微信小程序怎么实现抽奖大转盘
    这篇“微信小程序怎么实现抽奖大转盘”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序怎么实现抽奖大转盘”文章吧。界面就...
    99+
    2023-06-26
  • Android实现抽奖转盘实例代码
    本文详述了android抽奖程序的实现方法,程序为一个抽奖大转盘代码,里面定义了很多图形方法和动画。 实现主要功能的SlyderView.java源代码如下: import ...
    99+
    2022-06-06
    抽奖转盘 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作