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 相关文章推荐
QQ登录简单实现代码
Mar 09 Javascript
实现局部遮罩与关闭原理及代码
Feb 04 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
详解JavaScript对W3C DOM模版的支持情况
Jun 16 Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
Aug 05 Javascript
微信小程序中使用javascript 回调函数
May 11 Javascript
JavaScript高阶函数_动力节点Java学院整理
Jun 28 Javascript
JS倒计时实例_天时分秒
Aug 22 Javascript
vue axios 二次封装的示例代码
Dec 08 Javascript
浅谈vue权限管理实现及流程
Apr 23 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 模拟POST|GET操作实现代码
2010/07/20 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
jquery each()源代码
2011/02/14 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
JS原生瀑布流效果实现
2019/04/26 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
微信小程序tabBar设置实例解析
2019/11/14 Javascript
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
写好求职信第一句话的技巧
2013/10/26 职场文书
新生入学欢迎词
2015/01/26 职场文书
安全教育培训心得体会
2016/01/15 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
VUE递归树形实现多级列表
2022/07/15 Vue.js