jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码

下面是 “jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码”的完整攻略:

1. 安装jquery.rotate.js

在HTML头部导入jquery库和jquery.rotate.js库

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="jquery.rotate.js"></script>

2. HTML代码

在body部分添加代码如下,实现转盘布局:

<div id="fortune-wrapper">  
  <canvas id="roulette" width="500" height="500"></canvas>  
  <div id="chances"></div>  
  <div id="btnRoll">ROLL</div>
</div>

3. CSS代码

#fortune-wrapper {  
  width: 500px;  
  margin: auto;  
  text-align: center;  
  position: relative;  
  top: -18px;  
} 

#roulette {  
  position: absolute;  
  top: 0;  
  left: 0;  
} 

#chances {  
  position: absolute;  
  top: 180px;  
  left: 0;  
  right: 0;  
  margin: auto;  
  width:100%;  
  text-align:center;  
} 

#btnRoll {  
  width: 100px;  
  height: 100px;  
  line-height:100px;  
  background-color:yellowgreen;  
  color:#fff;  
  font-size: 20px;  
  border-radius: 50%;  
  text-align: center;  
  position: absolute;  
  bottom: 20px;  
  left: 50%;  
  margin-left: -50px;  
  cursor: pointer;  
}

4. JS代码

添加以下代码来实现抽奖转盘的设置:

var spin = 0;  //当前旋转位置
var startAngle = 0;  //旋转起点角度
var arc = Math.PI / (options.prizes.length / 2);  //将抽奖项分割的角度

$('#btnRoll').click(function() {
  var chances = parseInt($("#chances").text())

  if(chances <= 0) {
    alert('您的抽奖次数已用完')
    return
  }

  $("#chances").text(chances - 1)

  spin = Math.floor(Math.random() * options.prizes.length) + 1;
  var angle = winAngle(spin);
  $('#roulettte').rotate({
    animateTo: angle + 1800,  //旋转圈数
    duration: 8000,
    easing: $.easing.easeOutSine,
    callback: function() {
      alert(options.prizes[spin - 1])
    }
  })
})

//计算每个抽奖道的角度
function winAngle(spin) {
  return (startAngle + (spin - 1) * arc);
}

在以上代码中,我们存储了变量spin代表当前的抽奖位置,startAngle表示起点的角度,arc表示每个抽奖项的角度。当点击“Roll”按钮时,我们首先通过判断用户的可用抽奖次数来判断是否可以继续抽奖,如果抽奖次数用完了,就弹出提示框。接着我们将保存的spin变量设置为一个随机数,表示该次抽到的奖品位置。接着通过调用jquery.rotate.js库的rotate()方法,在动画中旋转转盘,并将结果回调到函数alert()里以弹出一个提示框,显示用户抽到的奖品。

示例1

以下是一个抽奖3次的示例代码:

var options = {
    prizes: ['100元代金券', '200元代金券', '500元代金券']
  };
$("#chances").text(3)

示例2

以下是一个抽奖1次,奖品有6个的示例代码:

var options = {
    prizes: ['1元红包', '2元红包', '5元红包', '10元红包', '健康宝', '贡献值']
};
$("#chances").text(1)

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jquery中load方法的用法及注意事项说明

    jQuery中的load方法是一种用来加载url地址指向的HTML代码片段的方法,在实际开发中非常有用。以下是load方法的用法及注意事项说明的详细攻略: 1. load方法的基础使用 load方法的基础使用方法是,首先为目标元素添加一个选择器,然后在该选择器上调用load方法即可。load方法会从指定的url地址中获取HTML代码片段,然后将其加载到目标元…

    jquery 2023年5月27日
    00
  • jQWidgets jqxTabs hideCloseButtonAt()方法

    jQWidgets jqxTabs 是一个用于创建标签页选项卡的 Jquery 插件。其中 jqxTabs.hideCloseButtonAt() 方法用于隐藏指定位置的标签页关闭按钮。 hideCloseButtonAt() 方法使用方法 hideCloseButtonAt() 方法可用于隐藏特定位置的标签页关闭按钮。可以通过调用该方法并传递要隐藏关闭按钮…

    jquery 2023年5月12日
    00
  • jquery.cookie.js实现用户登录保存密码功能的方法

    jquery.cookie.js是jquery操作cookie的插件,通过它可以方便地操作cookie。下面是jquery.cookie.js实现用户登录保存密码功能的方法的完整攻略: 步骤一:引入jquery和jquery.cookie插件 在项目中引入jquery和jquery.cookie插件,可以使用CDN或下载到本地,例如 <head>…

    jquery 2023年5月28日
    00
  • jQWidgets jqxGrid virtualmode属性

    jQWidgets jqxGrid virtualmode属性 jQWidgets jqxGrid 是一种表格控件,用于在 Web 应用程序中创建表格。virtualmode 属性是 jqxGrid 控件的一个属性,用于启用虚拟模式。本文将详细讲解 virtualmode 属性的使用方法,并提供两个示例。 属性 virtualmode 属性用于启用虚拟模式。…

    jquery 2023年5月10日
    00
  • jQuery中图片展示插件highslide.js的简单dom

    下面是jQuery中图片展示插件highslide.js的简单dom攻略: 一、什么是highslide.js Highslide JS是一个高效漂亮的展示图片、HTML内容以及多媒体的JavaScript弹出窗口插件,支持滑动切换多图,支持i18n国际化,支持触摸屏幕操作。它致力于让展示内容更加优美、友好、易用,帮助您打造专业化的网站。您可以在官网下载,也…

    jquery 2023年5月27日
    00
  • jQuery动画,幻灯片方法与实例

    jQuery动画,幻灯片方法与实例 什么是jQuery动画 jQuery动画是一种基于JavaScript框架,用于在网页中实现动画效果的工具。它可以在网页中实现各种各样的动态效果,例如淡入淡出、滑动、弹出、旋转等等。 jQuery幻灯片方法 在jQuery中,实现幻灯片效果主要使用以下方法: .fadeIn() & .fadeOut() .fade…

    jquery 2023年5月12日
    00
  • JavaScript Chart.js

    JavaScript Chart.js 完整攻略 简介 JavaScript Chart.js 是一个基于 HTML5 canvas 技术实现的图表库。它支持各种图表类型,例如线图、柱状图、饼图等等,并且易于使用和定制。 安装 Chart.js 通过 npm: npm install chart.js 通过 CDN: <script src=&quot…

    jquery 2023年5月12日
    00
  • javascript loadScript异步加载脚本示例讲解

    下面是详细讲解 JavaScript 异步加载脚本的示例攻略。 什么是 JavaScript 异步加载脚本? JavaScript 异步加载脚本指的是在页面加载时使用 JavaScript 动态加载脚本,而不是在 HTML 文件中使用 <script> 标签引入静态脚本文件。 使用异步加载脚本的好处是可以提高页面加载速度,同时也可以避免脚本阻塞浏…

    jquery 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部