jquery实现转盘抽奖功能


Posted in Javascript onJanuary 06, 2017

jquery实现转盘抽奖功能

实现这个其实蛮简单的,转动的效果用的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>

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

Javascript 相关文章推荐
javascript 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
Javascript remove 自定义数组删除方法
Oct 20 Javascript
javascript下数值型比较难点说明
Jun 07 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
Jan 11 Javascript
jquery插件unobtrusive实现片段式加载
Jun 15 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
Oct 23 Javascript
深入浅析javascript中的作用域(推荐)
Jul 19 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
Apr 13 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
Sep 19 Javascript
Angular自定义组件实现数据双向数据绑定的实例
Dec 11 Javascript
JSX在render函数中的应用详解
Sep 04 Javascript
BootStrap3中模态对话框的使用
Jan 06 #Javascript
如何制作幻灯片(代码分享)
Jan 06 #Javascript
微信小程序 支付简单实例及注意事项
Jan 06 #Javascript
微信小程序-拍照或选择图片并上传文件
Jan 06 #Javascript
ajax异步请求详解
Jan 06 #Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 #Javascript
微信小程序 二维码canvas绘制实例详解
Jan 06 #Javascript
You might like
php防止SQL注入详解及防范
2013/11/12 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
Python切片索引用法示例
2018/05/15 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
keras多显卡训练方式
2020/06/10 Python
python suds访问webservice服务实现
2020/06/26 Python
python脚本定时发送邮件
2020/12/22 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
酒吧总经理岗位职责
2013/12/10 职场文书
宝宝周岁宴答谢词
2014/01/26 职场文书
纠纷协议书
2014/04/16 职场文书
我爱读书演讲稿
2014/05/07 职场文书
质量月口号
2014/06/20 职场文书
群众路线个人整改方案
2014/10/25 职场文书
工作自我评价范文
2015/03/05 职场文书
放飞理想主题班会
2015/08/14 职场文书
找规律教学反思
2016/02/23 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL
如何Python使用re模块实现okenizer
2022/04/30 Python