用于转盘随机抽奖,现在设的是转盘的指针动,指针停留的位置需要自己设置,需要后端返回的数据类型格式为 一等奖:{code : 1 ,msg :'一等奖' } 失败 {code : 5XX,msg:' '}
可以把成功和失败返回的后台数据, 利用 success 和 error回调函数进行处理。效果:
关于如何设置指针停留的角度,打开控制台,选中指针,修改其
jquery.easing.js jQueryRotate.js
转动的时间 单位ms 默认为 duration: 5000
转动的圈数 360 * n 默认为 round:1440
中奖后的回调 默认为 success:function(){}
出错后的回调 默认为 error:function(){}
设置指针停的位置 该参数必须自己根据实际开发情景配置
setAngel:{
0:[70,114,201,289,335], //未中奖代表的角度
1:158, //一等奖的角度
2:244, //二等奖
3: 25 //三等奖
}
后台数据来源的url 默认为 url:‘’
向后台传的数据 默认为 data : ‘’
$('#luckyDraw').lottery(options);
/*
抽奖插件
依赖后端数据类型{code:0} code代表几等奖 {code : 5XX}代表失败
需要配置的参数:setAngel:{
0:[70,114,201,289,335], //未中奖代表的角度
1:158, //一等奖的角度
2:244, //二等奖
3: 25 //三等奖
}
调用 $('#luckyDraw').lottery(options);
依赖的文件 jquery.easing.js jQueryRotate.js
*/
;(function($,window,document){
var defaults = {
//指针转动的时间 ms
duration : 5000,
//圈数 360* n
round : 1440,
//指针初始位置
angel : 0,
//中奖后的回调
success: function (rs) {
},
//出错后的回调
error : function(rs){
},
//角度及奖项设置
setAngle: {
0:[70,114,201,289,335],
1:158,
2:244,
3: 25
},
//数据来源
url:'',
//发送的数据
data:''
},
//缓存
_that,
//构造函数
Plugin = function(element,options){
this.element = element;
this.options = $.extend({},defaults,options);
this.init();
};
Plugin.prototype.init = function(element,options){
_that = this;
//绑定元素click
$(this.element).rotate({
bind:{
click:function(){
sendMsg(_that.options.url,_that.options.data)
}
}
});
};
//插件
jQuery.fn.lottery = function(options){
return this.each(function(){
if(!$.data(this,'lottery')){
$.data(this,'lottery',new Plugin(this,options));
}
})
};
//发送请求
var sendMsg = function(url ,data){
$.get(url,data,function(rs){
var rs = window._rs = JSON.parse(rs);
//成功后的回调
rs.code > 500 ? _that.options.error(rs) :
//失败后的回调
rotateFunc(rs.code,_that.options.setAngle[rs.code],_that.options.success);
});
},
//指针移动
rotateFunc = function(awards, angel, callback){
$(_that.element).stopRotate();
$(_that.element).rotate({
angel : 0,
duration : _that.options.duration,
callback : function(){
callback.call(null,window._rs);
}
})
};
})(jQuery,window,document,undefined);