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日

相关文章

  • jQWidgets jqxGrid rowsheight属性

    jQWidgets jqxGrid rowsheight属性攻略 jQWidgets 是一个基于 jQuery 的 UI 组件库,提供了丰富的 UI 组件和工具,可用于创建现代化的 Web 应用程序。 jqxGrid 是表格的件,提供了丰富的配置选项和方法。本攻略将详细介绍 jqxGrid 的 rowsheight 属性,该属性用于设置表格行的高度。 row…

    jquery 2023年5月10日
    00
  • jQuery text()方法

    jQuery text()方法用于获取或设置元素的文本内容。本文将详细介绍text()方法的语法和用法,并提供两个示例说明。 语法 以下是text()方法基本语法: jQuery.text([text]) 在这个语法中,text是可选的,用于设置元素的文本内容。 text()方法将返回元素的文本内容,或者如果提供了text参数,则设置元素的文本内容。 示例1…

    jquery 2023年5月9日
    00
  • jQuery–遍历操作实例小结【后代、同胞及过滤】

    jQuery–遍历操作实例小结【后代、同胞及过滤】 jQuery是一款非常强大、易用且广泛应用于前端开发的JavaScript库。它提供了多种遍历操作的方法,包括后代、同胞和过滤等。本文将详细讲解这些操作的实现方法和使用技巧。 后代选择器 后代选择器是指通过指定元素的父元素及其后代元素的标签名等信息,选取后代元素的操作。jQuery中通过空格符实现后代选择…

    jquery 2023年5月28日
    00
  • jQWidgets jqxBarcode isValid()方法

    jQWidgets jqxBarcode isValid()方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI组件和工具,包括表格、图表、表单、历、菜等。其中,jqxBarcode是jQWidgets中的一个条形码组件,可以用于生成各种类型的条码。jqxBarcode提供了isValid()方法,用于检查条形码的值是否有效。本文…

    jquery 2023年5月9日
    00
  • jQuery UI Checkboxradio enable()方法

    jQuery UI 的 Checkboxradio 组件提供了一个 enable() 方法,该方法用于启用或禁用 Checkboxradio。在本教程中,我们将详细介绍 Checkboxradio enable() 方法的使用方法。 enable() 方法基本语法如下: $( ".selector" ).checkboxradio( &q…

    jquery 2023年5月11日
    00
  • 如何在jQuery UI中启用autocomplete功能

    以下是关于如何在 jQuery UI 中启用 autocomplete 功能的完整攻略: 如何在 jQuery UI 中启用 autocomplete 功能 在 jQuery UI 中,可以使用 autocomplete 方法将一个文本输入框转换为自动完成输入框。这将使用户能够更快地输入信息,并减少输入错误。 语法 $(selector).autocompl…

    jquery 2023年5月11日
    00
  • jQuery中的100个技巧汇总

    jQuery中的100个技巧汇总:完整攻略 什么是jQuery jQuery是一个开源JavaScript库,主要用于简化HTML文档的遍历、事件处理、动画和AJAX操作等任务。它使客户端开发变得更加简单,快速和高效。 理解“jQuery中的100个技巧汇总” “jQuery中的100个技巧汇总”是一份有关jQuery使用的完整攻略。其主要包含简单易懂的技巧…

    jquery 2023年5月27日
    00
  • jQuery mouseover()方法

    jQuery mouseover()方法用于在鼠标移动到元素上时触发事件。与mouseenter()方法不同,mouseover()方法会在鼠标移动元素的元素上触发事件。 以下是mouseover()的详细攻略: 语法 $(selector).mouseover(function) 参数 selector:必需,用于选择要绑定事件的元素。 function:…

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