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 相关文章推荐
js获取TreeView控件选中节点的Text和Value值的方法
Nov 24 Javascript
js跨域访问示例(客户端/服务端)
May 19 Javascript
js实现二级菜单渐隐显示
Nov 03 Javascript
JS实现网页上随机产生超链接地址的方法
Nov 09 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
Nov 24 Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
Oct 10 Javascript
js制作简单的音乐播放器的示例代码
Aug 28 Javascript
浅谈React碰到v-if
Nov 04 Javascript
使用layui定义一个模块并使用的例子
Sep 14 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
Apr 09 Javascript
如何在postman测试用例中实现断言过程解析
Jul 09 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 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
Javascript函数的参数
2015/07/16 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
2017/02/20 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
2018/09/01 jQuery
Django实现表单验证
2018/09/08 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
对python 调用类属性的方法详解
2019/07/02 Python
postman和python mock测试过程图解
2020/02/22 Python
重构Python代码的六个实例
2020/11/25 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
班级年度安全计划书
2014/05/01 职场文书
红旗渠导游词
2015/02/09 职场文书
数学复习课教学反思
2016/02/18 职场文书
亲情作文之母爱
2019/09/25 职场文书
html5实现点击弹出图片功能
2021/07/16 HTML / CSS
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
instantclient客户端 连接oracle数据库
2022/04/26 Oracle
Nginx配置使用详解
2022/07/07 Servers