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 模仿vbs中的 DateAdd() 函数的代码
Aug 13 Javascript
一个报数游戏js版(约瑟夫环问题)
Aug 05 Javascript
js 幻灯片的实现
Dec 06 Javascript
js日期范围初始化得到前一个月日期的方法
May 05 Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 Javascript
Bootstrap 填充Json数据的实例代码
Jan 11 Javascript
vue页面使用阿里oss上传功能的实例(二)
Aug 09 Javascript
使用FileReader API创建Vue文件阅读器组件
Apr 03 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
微信小程序新手教程之启动页的重要性
Mar 03 Javascript
记一次用ts+vuecli4重构项目的实现
May 21 Javascript
Vertx基于EventBus发送接受自定义对象
Nov 16 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编程效率的方法
2013/11/07 PHP
10条php编程小技巧
2015/07/07 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
javascript trie前缀树的示例
2018/01/29 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python中redis的安装和使用
2016/12/04 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
Python random模块用法解析及简单示例
2017/12/18 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
python定时截屏实现
2020/11/02 Python
python中time.ctime()实例用法
2021/02/03 Python
工厂门卫岗位职责范本
2014/04/04 职场文书
百日安全生产活动总结
2014/07/05 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
2015年计划生育责任书
2015/05/08 职场文书
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript