jqueryrotate制作机锋网积分抽奖效果
应一网友的要求,做了一个类似机锋网积分抽奖的效果。其实这个效果和之前的“百度红包大放送抽奖效果”是一样的,使用了 jQuery 旋转插件——jquery.rotate.js,只是转盘不一样罢了。
制作方法
1、引入文件
<script src="js/jquery-1.8.3.min.js"></script> <script src="js/jquery.rotate.min.js"></script>
2、HTML
<div id="dowebok"> <div class="plate"> <a id="plateBtn" href="javascript:" title="开始抽奖">开始抽奖</a> </div> <div class="prize"> <h4>奖品设置</h4> <ul> <li><strong>一等奖:</strong>iPhone 6 Plus(1名)</li> <li><strong>二等奖:</strong>iPhone 6(2名)</li> <li><strong>三等奖:</strong>iPad Air 2(5名)</li> <li><strong>参与奖:</strong>充电宝(20名)</li> </ul> </div> <div id="result"> <p id="resultTxt"></p> <a id="resultBtn" href="javascript:" title="关闭">关闭</a> </div> </div>
3、CSS
#dowebok { position: relative; width: 780px; height: 390px; margin: 0 auto; padding: 20px; border: 1px solid #ddd; background: url(images/ly-plate-c.gif) 20px 20px no-repeat; } .plate { position: relative; float: left; width: 390px; height: 390px; background-image: url(images/lyplate.png); } .prize { float: right; width: 360px; height: 390px; font: 14px/1.5 "Microsoft Yahei"; } .prize h4 { margin: 80px 0 20px; padding: 10px; background-color: #eee; } .prize ul { list-style-type: none; } .prize li { margin: 10px; } #plateBtn { position: absolute; left: 88px; top: 88px; width: 214px; height: 214px; background-image: url(images/rotate-static.png); text-indent: -9999px; overflow: hidden; } #result { display: none; position: absolute; left: 65px; top: 155px; width: 300px; height: 120px; background-color: rgba(0,0,0,0.75); filter: alpha(opacity=90); } #resultTxt { padding: 45px 15px 0; font: 16px "Microsoft Yahei"; color: #fff; text-align: center; } #resultTxt em { color: #ffea76; font-style: normal; } #resultBtn { position: absolute; right: 5px; top: 5px; width: 25px; height: 25px; text-indent: -100px; background-image: url(images/close.png); overflow: hidden; }
4、JavaScript
$(function(){ var $plateBtn = $('#plateBtn'); var $result = $('#result'); var $resultTxt = $('#resultTxt'); var $resultBtn = $('#resultBtn'); $plateBtn.click(function(){ var data = [0, 1, 2, 3, 4, 5, 6, 7]; data = data[Math.floor(Math.random()*data.length)]; switch(data){ case 1: rotateFunc(1,157,'恭喜你中了 <em>一等奖</em>'); break; case 2: rotateFunc(2,65,'恭喜你中了 <em>二等奖</em>'); break; case 3: rotateFunc(3,335,'恭喜你中了 <em>三等奖</em>'); break; case 4: rotateFunc(4,247,'恭喜你中了 <em>四等奖</em>'); break; case 5: rotateFunc(5,114,'谢谢参与,请再接再厉'); break; case 6: rotateFunc(6,24,'谢谢参与,请再接再厉'); break; case 7: rotateFunc(7,292,'谢谢参与,请再接再厉'); break; default: rotateFunc(0,203,'恭喜你中了 <em>参与奖</em>'); } }); var rotateFunc = function(awards,angle,text){ //awards:奖项,angle:奖项对应的角度 $plateBtn.stopRotate(); $plateBtn.rotate({ angle: 0, duration: 5000, animateTo: angle + 1440, //angle是图片上各奖项对应的角度,1440是让指针固定旋转4圈 callback: function(){ $resultTxt.html(text); $result.show(); } }); }; $resultBtn.click(function(){ $result.hide(); }); });
标签:抽奖