jquery实现转盘抽奖功能

发布时间 - 2026-01-10 22:21:47    点击率:

实现这个其实蛮简单的,转动的效果用的jqueryRotate插件,所以只要判断每个奖荐对应的角度,然后设置指针的转动角度就可以了。比如关键的是jqueryRotate这个插件的用法。

jqueryRotate的资料:

支持Internet Explorer 6.0+ 、Firefox 2.0 、Safari 3 、Opera 9 、Google Chrome,高级浏览器下使用Transform,低版本ie使用VML实现

google code地址:http://code.google.com/p/jqueryrotate/

调用和方法:

$(el).rotate({  
    angle:0, //起始角度
     animateTo:180, //结束的角度
     duration:500, //转动时间
     callback:function(){}, //回调函数
     easing: $.easing.easeInOutExpo //定义运动的效果,需要引用jquery.easing.min.js的文件
  })
$(el).rotate(45); //直接这样子调用的话就是变换角度
$(el).getRotateAngle(); //返回对象当前的角度
$(el).stopRotare(); //停止旋转动画

另外可以更方便的通过调用$(el).rotateRight()和$(el).rotateLeft()来分别向右旋转90度和向左旋转90度。

很简单吧,各种example可以看这里:http://code.google.com/p/jqueryrotate/wiki/Examples

下面是用jqueryRotate实现的抽奖转盘页面:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>转盘</title>
<style>
 *{padding:0;margin:0}
 body{
 text-align:center
 }
 .ly-plate{
 position:relative;
 width:509px;
 height:509px;
 margin: 50px auto;
 }
 .rotate-bg{
 width:509px;
 height:509px;
 background:url(ly-plate.png);
 position:absolute;
 top:0;
 left:0
 }
 .ly-plate div.lottery-star{
 width:214px;
 height:214px;
 position:absolute;
 top:150px;
 left:147px;
 /*text-indent:-999em;
 overflow:hidden;
 background:url(rotate-static.png);
 -webkit-transform:rotate(0deg);*/
 outline:none
 }
 .ly-plate div.lottery-star #lotteryBtn{
 cursor: pointer;
 position: absolute;
 top:0;
 left:0;
 *left:-107px
 }
</style>
</head>
<body>
 <div class="ly-plate">
 <div class="rotate-bg"></div>
 <div class="lottery-star"><img src="rotate-static.png" id="lotteryBtn"></div>
 </div>
</body>
<script src="jquery-1.7.2.min.js"></script>
<script src="jQueryRotate.2.2.js"></script>
<script>
$(function(){
 var timeOut = function(){ //超时函数
 $("#lotteryBtn").rotate({
  angle:0, 
  duration: 10000, 
  animateTo: 2160, //这里是设置请求超时后返回的角度,所以应该还是回到最原始的位置,2160是因为我要让它转6圈,就是360*6得来的
  callback:function(){
  alert('网络超时')
  }
 }); 
 }; 
 var rotateFunc = function(awards,angle,text){ //awards:奖项,angle:奖项对应的角度,text:提示文字
 $('#lotteryBtn').stopRotate();
 $("#lotteryBtn").rotate({
  angle:0, 
  duration: 5000, 
  animateTo: angle+1440, //angle是图片上各奖项对应的角度,1440是我要让指针旋转4圈。所以最后的结束的角度就是这样子^^
  callback:function(){
  alert(text)
  }
 }); 
 };
 $("#lotteryBtn").rotate({ 
 bind: 
  { 
  click: function(){
  var time = [0,1];
   time = time[Math.floor(Math.random()*time.length)];
  if(time==0){
   timeOut(); //网络超时
  }
  if(time==1){
   var data = [1,2,3,0]; //返回的数组
   data = data[Math.floor(Math.random()*data.length)];
   if(data==1){
   rotateFunc(1,157,'恭喜您抽中的一等奖')
   }
   if(data==2){
   rotateFunc(2,247,'恭喜您抽中的二等奖')
   }
   if(data==3){
   rotateFunc(3,22,'恭喜您抽中的三等奖')
   }
   if(data==0){
   var angle = [67,112,202,292,337];
    angle = angle[Math.floor(Math.random()*angle.length)]
   rotateFunc(0,angle,'很遗憾,这次您未抽中奖')
   }
  }
  }
  } 
 });
})
</script>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# jquery  # 转盘抽奖  # jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码  # jquery 年会抽奖程序  # jQuery实现转动随机数抽奖效果的方法  # jquery 抽奖小程序实现代码  # jquery实现九宫格大转盘抽奖  # jQuery实现类似老虎机滚动抽奖效果  # jquery输入数字随机抽奖特效的简单实现代码  # jquery——九宫格大转盘抽奖实例  # jQuery+PHP实现的掷色子抽奖游戏实例  # jQuery实现移动端扭蛋机抽奖  # 这样子  # 的是  # 我要  # 是因为  # 很简单  # 要让  # 让它  # 得来  # 更方便  # 回调  # 就可以  # 很遗憾  # 最原始  # xhtml  # rotateRight  # rotateLeft  # stopRotare  # min  # getRotateAngle  # easing 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用虚拟主机快速搭建网站?详细步骤解析  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Laravel如何自定义错误页面(404, 500)?(代码示例)  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  浅谈redis在项目中的应用  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  简历在线制作网站免费版,如何创建个人简历?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Python自动化办公教程_ExcelWordPDF批量处理案例  打造顶配客厅影院,这份100寸电视推荐名单请查收  Laravel如何实现文件上传和存储?(本地与S3配置)  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  如何用已有域名快速搭建网站?  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  javascript读取文本节点方法小结  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  如何撰写建站申请书?关键要点有哪些?  如何在Windows 2008云服务器安全搭建网站?  如何获取免费开源的自助建站系统源码?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Bootstrap整体框架之JavaScript插件架构  如何快速搭建自助建站会员专属系统?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  Laravel如何实现API资源集合?(Resource Collection教程)  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  大型企业网站制作流程,做网站需要注册公司吗?  如何快速启动建站代理加盟业务?  如何生成腾讯云建站专用兑换码?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  Laravel如何使用Sanctum进行API认证?(SPA实战)  如何彻底删除建站之星生成的Banner?  如何在IIS中新建站点并配置端口与物理路径?  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Laravel如何实现用户注册和登录?(Auth脚手架指南)