实例介绍
【实例简介】
【实例截图】
【核心代码】
//抽奖DOM
var scrollH=document.documentElement.scrollHeight||document.body.scrollHeight;//获取网页高度
var scrollW=document.documentElement.scrollWidth||document.body.scrollWidth;//获取网页宽度
var clientH=$(window).height();//获取屏幕可见高度
var clientW=document.documentElement.clientWidth||document.body.clientWidth;//获取屏幕可见宽度
var luckDrawIco=document.createElement('div');//创建抽奖缩略图
luckDrawIco.className='luckDrawIco';
luckDrawIco.innerHTML='<img src="luckDraw/turplate-icon.png" />';
document.body.appendChild(luckDrawIco);
var luckDrawBox=document.createElement('div');//创建抽奖转盘
var bodyBg=document.createElement('div');//创建抽奖背景
luckDrawBox.className='wrapper';
bodyBg.className='bodyBg';
luckDrawBox.innerHTML='<img src="luckDraw/turplate-bg.gif" class="luckdraw-bg" />\
<img src="luckDraw/close.png" class="close" id="close" />\
<div class="ribbon">\
你的抽奖次数:0 次\
</div>\
<div class="box" id="box">\
<img src="luckDraw/turplate.png" alt="">\
</div>\
<div id="button" class="luckDraw-btn">\
<img src="luckDraw/btn.png" alt="">\
</div>'
//背景宽高赋值
bodyBg.style.width=scrollW "px";
bodyBg.style.height=scrollH 'px';
//每5秒抽奖缩略图添加css3样式
setInterval(function(){
luckDrawIco.className='luckDrawIco animated swing';
},5000);
//每7秒抽奖缩略图删除css3样式
setInterval(function(){
luckDrawIco.className='luckDrawIco';
},7000);
//创建抽奖结果
var prizeBox=document.createElement('div');
prizeBox.className='prize-box';
prizeBox.innerHTML='<p id="prize-cont"></p>\
<img src="luckDraw/close.png" class="prizeBox-close" id="prizeBox-close" />\
<a href="#" class="prize-a" id="prize-a"></a>\
';
//抽奖结果写入body
function prizeBoxAddFun(){
document.body.appendChild(prizeBox);
document.body.appendChild(bodyBg);
//设置抽奖结果居中
var prizeBoxH=prizeBox.offsetHeight,
prizeBoxW=prizeBox.offsetWidth;
prizeBox.style.left=(clientW-prizeBoxW)/2 "px";
prizeBox.style.top=(clientH-prizeBoxH)/2 "px";
}
//关闭抽奖结果
function prizeBoxremove(){
document.body.removeChild(prizeBox);
document.body.removeChild(bodyBg);
};
//转盘写入body
function appendFun(){
document.body.appendChild(luckDrawBox);
document.body.appendChild(bodyBg);
//设置转盘居中
var luckDrawBoxH=luckDrawBox.offsetHeight,
luckDrawBoxW=luckDrawBox.offsetWidth;
luckDrawBox.style.left=(clientW-luckDrawBoxW)/2 "px";
luckDrawBox.style.top=(clientH-luckDrawBoxH)/2 "px";
};
//关闭转盘
function removeFun(){
document.body.removeChild(luckDrawBox);
document.body.removeChild(bodyBg);
};
//抽奖
//初始化isDoing,false时可以启动抽奖按钮
var isDoing=false;
//点击抽奖缩略图创建转盘
eventUtil.addHandler(luckDrawIco,'click',function(){
appendFun();
//关闭转盘
var closes=document.getElementById('close');
eventUtil.addHandler(closes,'click',removeFun);
init();
});
function init(){
var button=document.getElementById('button');
var box=document.getElementById('box');
isDoing=false;//false时可以启动抽奖按钮
//初始化转盘css3样式
var deg = $(pars.body).attr('data-deg');
$(pars.body).find('.box').css({
transform: 'rotate(' deg 'deg)',
transition: 'none'
})
//点击转盘抽奖
button.onclick=function(){
//通过AJAX从后台传数据,获取奖品
/* $.ajax({
type:"post",//请求方式
url:"/",//请求地址
dataType:"json",//响应数据类型
success:function(data){
var index = data.prize;
var degNum;//通过角度获取奖品顺时针,45度一个奖品
if(index==1){
degNum=248;
}else if(index==2){
degNum=248;
}else if(index==3){
degNum=248;
}else if(index==4){
degNum=248;
}else if(index==5){
degNum=248;
}else if(index==6){
degNum=248;
}else if(index==7){
degNum=248;
}else if(index==8){
degNum=248;
}
if(!$this.isDoing) {
goRotate(degNum);//调用
isDoing = true;//ture阻止连续点击抽奖
}
},
error:function(){
alert('服务器连接失败,请稍后再试!');
}
})*/
//测试用
if(isDoing==false) {
//goRotate(248);//获取指定角度
clickCbFun();//测试用获取随机角度
isDoing = true;//ture阻止连续点击抽奖
}
}
//初始化转盘css3样式
box.addEventListener("transitionend", transitionendFun);
};
//初始化转盘css3样式
function transitionendFun(){
var deg = $(pars.body).attr('data-deg');
renderCbFun(deg);
$(pars.body).find('.box').css({
transform: 'rotate(' deg 'deg)',
transition: 'none'
})
isDoing=false;//false时
}
//设置转盘停止位置
function goRotate(deg) {
// var rotateEnd = this.rotateAll deg;
var rotateEnd = pars.rotateNum * 360 deg;
$(pars.body).find('.box').css({
transform: 'rotate(' rotateEnd 'deg)',
transition: 'all 5s'
})
$(pars.body).attr('data-deg',deg);
};
//初始化奖项参数
var pars = {
rotateNum: 8,
body: '.wrapper',
//clickCb: clickCbFun,
};
//创建转盘随机角度
function clickCbFun(deg) {
var random = Math.floor(Math.random() * 360);//获取随机角度
goRotate(random);
}
//对应奖品
function renderCbFun(deg) {
var str = '';
if (deg >= 0 && deg < 45) {
str = '1000美元现金券';
} else if (deg >= 45 && deg < 90) {
str = '5000美元现金券';
} else if (deg >= 90 && deg < 135) {
str = '20美金抵现券';
} else if (deg >= 135 && deg < 180) {
str = '500美元现金券';
} else if (deg >= 180 && deg < 225) {
str = '8美元抵现券';
} else if (deg >= 225 && deg < 270) {
str = 'iPhone XS Max';
} else if (deg >= 270 && deg < 315) {
str = '10美元抵现劵';
} else if (deg >= 315 && deg < 360) {
str = '2000美金现金券';
}
removeFun();//关闭转盘
prizeBoxAddFun();//创建奖品结果层
var prizeCont=document.getElementById('prize-cont');
var prizeBoxClose=document.getElementById('prizeBox-close');
prizeCont.innerHTML='恭喜你获得:"' str '"';//写入对应奖品
eventUtil.addHandler(prizeBoxClose,'click',prizeBoxremove);//关闭奖品结果层
}
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论