H5转盘简单封装

var $ = require('common:zepto'),AzAjax = require(':common/AzAjax/AzAjax.js'),Tips = require('common:tips');
/** 参数说明
selected = 0 时 必须设定下面1 参数


1.
page: 当前页面路径,例如“/zbj/assess/index”
url: 请求地址
params: 请求参数,json格式
successAjax: success时(code==0)回调函数
2.
dom: dom容器 例如“#draw_light”
startAngle: 平分几等分
speed :  运行速度
steppingAccelerate :  第几步加速 必须大于0
basecircle :  第几步减速
selected :  规定第几项中奖
默认点击抽奖按钮类名 :“j_dialog_btn”
**/
var LotteryData = {
div : "",
timer:null,
index : 0,
stop : false,
running :true,
isBeginPrize :false,
stepping : 0,
selected:0,
stAngle : 0,
startAngle : 0,
speed : 300,
steppingAccelerate :  6,
basecircle :  4,
successLottery:$.noop
}
var LotteryText = ["1","2","3","4","5","6"];
function lotteryText(){


var residue = (LotteryData.stAngle)%360,
index;
if(residue == 0 ){
index = 0;
}else{
index = residue / (360/LotteryData.startAngle);
}
Tips.success("你中了"+LotteryText[index]+"等奖");
}
function drawCircle(running){
if(running){
$(".draw_light").css('transform','rotate(' + LotteryData.stAngle +'deg)');
$(".draw_light").css('-webkit-transform','rotate(' + LotteryData.stAngle +'deg)');
LotteryData.stAngle +=(360/LotteryData.startAngle);
}
};
function rotate(){
if(LotteryData.stepping == LotteryData.steppingAccelerate){
clearTimer();
LotteryData.speed = +150;
LotteryData.timer = setInterval(rotate,LotteryData.speed);
}
if(LotteryData.basecircle > 0 && LotteryData.index ==10){ //中间动画
LotteryData.index = 8;
LotteryData.basecircle--;
clearTimer();
LotteryData.speed = 300;
LotteryData.timer = setInterval(rotate,LotteryData.speed);
if(LotteryData.basecircle == 0){
LotteryData.isBeginPrize = true;   
}

}
if(LotteryData.isBeginPrize && LotteryData.selected > 0) // 开始抽奖
{
if(--LotteryData.selected == 0) //到了选择的奖项之后
{
clearTimer();
setTimeout(function(){
LotteryData.successLottery && LotteryData.successLottery.call(this);
lotteryText();
},(LotteryData.speed+200));
}
else
{
clearTimer();
LotteryData.speed += 100;
LotteryData.timer = setInterval(rotate,LotteryData.speed);
}
}
drawCircle(true);
LotteryData.index++;
LotteryData.stepping++;


};
function clearTimer(){
clearInterval(LotteryData.timer);
LotteryData.timer = null;
}
function Lottery(opt){
this.options = $.extend({
dom:'#draw_light',
startAngle:0,
speed : 300,
steppingAccelerate : 6 ,
basecircle : 3,  
selected : 0 , 
url:"",
page:"",
params:{},
successAjax:$.noop,
successLottery:$.noop
},opt||{});
this.init();
}
Lottery.prototype = {
init :function(){
this.bindSubmit();
},
dataInit:function(){
LotteryData.div = $(this.options.dom);
LotteryData.timer = null;
LotteryData.index = 0;
LotteryData.stop = this.options.selected ? true : false;
LotteryData.running= true;
LotteryData.isBeginPrize = false;
LotteryData.stepping = 0;
LotteryData.successLottery = this.options.successLottery ? this.options.successLottery : $.noop;
LotteryData.startAngle = this.options.startAngle ? this.options.startAngle : 6;
LotteryData.selected = this.options.selected ? (this.options.selected + 3)-(this.options.steppingAccelerate - this.options.startAngle) : 0;
LotteryData.speed = this.options.speed ? this.options.speed : 300;
LotteryData.steppingAccelerate = this.options.steppingAccelerate ? this.options.steppingAccelerate : 6;
LotteryData.basecircle = this.options.basecircle ? this.options.basecircle : 4;
},
bindSubmit:function(){
var self = this;
$(".j_dialog_btn").click(function(){
$(".j_dialog_btn").attr("disabled","disabled");
self.dataInit();
if(self.options.selected > self.options.startAngle) {
return Tips.error("该奖项大于奖项总数");
}
var time1 = setInterval(function(){
drawCircle(LotteryData.running);
if(LotteryData.stop){
if(LotteryData.stepping == LotteryData.steppingAccelerate){
clearInterval(time1);
LotteryData.stAngle = LotteryData.stAngle-(360/LotteryData.startAngle);
rotate();
}else{
LotteryData.stepping++;
}
}
},LotteryData.speed);
if(!LotteryData.selected){
AzAjax.send({
curPage : self.options.page,
ajaxUrl : self.options.url,
ajaxPram : self.options.params,
type :'POST',
aSuccessCallBack : function(data){
if(code == 0 ){
self.options.successAjax && self.options.successAjax.call(self,data);
LotteryData.selected = (data.selected + 3) - (self.options.steppingAccelerate - self.options.startAngle) ;
LotteryText = data.LotteryText;
LotteryData.stop = true;
Tips.success(data.msg);
}else{
clearInterval(time1);
Tips.error(data.msg);
$(".j_dialog_btn").removeAttr('disabled');
}
}
});
}
})
}
}
return Lottery;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
H5抽奖转盘. 文件夹 PATH 列表 卷序列号为 4E8D-6931 C:. │ .txt │ ├─activity │ │ fenxiang.html │ │ huodong.html │ │ index.html │ │ xinxitianxie.html │ │ zhuanpan.html │ │ zhuanpanapp.html │ │ │ ├─css │ │ index.css │ │ │ ├─fenxiang │ │ fenxiang.htm │ │ index.jsp │ │ │ ├─images │ │ arw-sheet0.png │ │ beijing.png │ │ beijinga.png │ │ beijingb.png │ │ caidai.png │ │ chun-sheet0.png │ │ cursorhand_grey-sheet0.png │ │ dizhi.png │ │ enenjo.png │ │ erweima.png │ │ fangqi.png │ │ fangqi_on.png │ │ fenxiangjiantou.png │ │ fenxiangquchoujiang.png │ │ icon-you.png │ │ jiantou.png │ │ lijichouj.png │ │ lijichoujiang.png │ │ loading-logo.png │ │ loading.gif │ │ quchoujiang.png │ │ share.png │ │ share1.png │ │ sharebg-sheet0.png │ │ shenfenzheng.png │ │ shouji.png │ │ shuaxin.png │ │ tijiao.png │ │ tijiao_on.png │ │ tile-sheet0.png │ │ tile-sheet1.png │ │ tile-sheet2.png │ │ tiledbackground.png │ │ tiledbackground1.png │ │ tiledbackground2.png │ │ tupian.png │ │ wenzi0.png │ │ wenzi00.png │ │ wenzi000.png │ │ wenzi0000.png │ │ wenzi1.png │ │ wenzi2.png │ │ wenzi3.png │ │ wenzi4.png │ │ wenzi5.png │ │ wenzi6.png │ │ wenzi7.png │ │ wubj.png │ │ xingming.png │ │ xinxibj.png │ │ zhangzishi.png │ │ zhongjiangjilu.png │ │ zhuanpan.png │ │ zhuanpand.png │ │ │ └─js │ c2runtime.js │ jquery-1.8.3.min.js │ jquery-2.0.0.min.js │ jquery.rotate.min.js │ └─后台代码 getLotteryNum.jsp lottery.jsp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值