实例介绍
【实例简介】
【实例截图】
【核心代码】
//抽奖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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论