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 相关文章推荐
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
Apr 02 Javascript
不使用jquery实现js打字效果示例分享
Jan 19 Javascript
javascript操作数组详解
Dec 17 Javascript
JS实现仿QQ聊天窗口抖动特效
May 10 Javascript
javascript中动态函数用法实例分析
May 14 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
Nov 17 Javascript
JS 清除字符串数组中,重复元素的实现方法
May 24 Javascript
jQuery实现邮箱下拉列表自动补全功能
Sep 08 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
Aug 23 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
Nov 30 Javascript
Vue页面刷新记住页面状态的实现
Dec 27 Javascript
vue2和vue3的v-if与v-for优先级对比学习
Oct 10 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中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
php之curl设置超时实例
2014/11/03 PHP
限制复选框的最大可选数
2006/07/01 Javascript
js 动态选中下拉框
2009/11/26 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
pymongo实现多结果进行多列排序的方法
2015/05/16 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
详解python中list的使用
2019/03/15 Python
如何在python中实现随机选择
2019/11/02 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
学生的自我鉴定范文
2013/10/24 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2014年工会工作总结
2014/11/12 职场文书
狮子林导游词
2015/02/03 职场文书
2016年教师节慰问信
2015/12/01 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python
使用Springboot实现健身房管理系统
2021/07/01 Java/Android
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js