下面我們來分享一個九宮格抽獎特效
特效說明:
一款jQuery九宮格大轉盤抽獎代碼網頁特效,點擊抽獎按鈕開始隨機抽獎選擇獎品,可設定起點位置、獎品數量、轉動次數、中獎位置參數。(相容測試:IE7及以上、Firefox、Chrome、Opera、Safari、360等主流瀏覽器)
HTML:
<!--效果html開始--><div id="lottery"><table border="0" cellpadding="0" cellspacing="0"><tr><td class="lottery-unit lottery-unit-0"><img src="images/1.png"></td><td class="lottery-unit lottery-unit-1"><img src="images/2.png"></td><td class="lottery-unit lottery-unit-2"><img src="images/4.png"></td> <td class="lottery-unit lottery-unit-3"><img src="images/3.png"></td></tr><tr><td class="lottery-unit lottery-unit-11"><img src="images/7.png"></td><td colspan="2" rowspan="2"><a href="#"></a></td><td class="lottery-unit lottery-unit-4"><img src="images/5.png"></td></tr><tr><td class="lottery-unit lottery-unit-10"><img src="images/1.png"></td><td class="lottery-unit lottery-unit-5"><img src="images/6.png"></td></tr> <tr><td class="lottery-unit lottery-unit-9"><img src="images/3.png"></td><td class="lottery-unit lottery-unit-8"><img src="images/6.png"></td><td class="lottery-unit lottery-unit-7"><img src="images/8.png"></td> <td class="lottery-unit lottery-unit-6"><img src="images/7.png"></td></tr></table></div>
js部分
<script type="text/javascript" src="jquery-1.8.3.min.js"></script><script type="text/javascript">var lottery={index:-1,//當前轉動到哪個位置,起點位置count:0,//總共有多少個位置timer:0,//setTimeout的ID,用clearTimeout清除speed:20,//初始轉動速度times:0,//轉動次數cycle:50,//轉動基本次數:即至少需要轉動多少次再進入抽獎環節prize:-1,//中獎位置init:function(id){if ($("#"+id).find(".lottery-unit").length>0) {$lottery = $("#"+id);$units = $lottery.find(".lottery-unit");this.obj = $lottery;this.count = $units.length;$lottery.find(".lottery-unit-"+this.index).addClass("active");};},roll:function(){var index = this.index;var count = this.count;var lottery = this.obj;$(lottery).find(".lottery-unit-"+index).removeClass("active");index += 1;if (index>count-1) {index = 0;};$(lottery).find(".lottery-unit-"+index).addClass("active");this.index=index;return false;},stop:function(index){this.prize=index;return false;}};function roll(){lottery.times += 1;lottery.roll();if (lottery.times > lottery.cycle+10 && lottery.prize==lottery.index) {clearTimeout(lottery.timer);lottery.prize=-1;lottery.times=0;click=false;}else{if (lottery.times<lottery.cycle) {lottery.speed -= 10;}else if(lottery.times==lottery.cycle) {var index = Math.random()*(lottery.count)|0;lottery.prize = index;}else{if (lottery.times > lottery.cycle+10 && ((lottery.prize==0 && lottery.index==7) || lottery.prize==lottery.index+1)) {lottery.speed += 110;}else{lottery.speed += 20;}}if (lottery.speed<40) {lottery.speed=40;};//console.log(lottery.times+'^^^^^^'+lottery.speed+'^^^^^^^'+lottery.prize);lottery.timer = setTimeout(roll,lottery.speed);}return false;}var click=false;window.onload=function(){lottery.init('lottery');$("#lottery a").click(function(){if (click) {return false;}else{lottery.speed=100;roll();click=true;return false;}});};</script>
CSS部分
/* 效果CSS開始 */#lottery{width:574px;height:584px;margin:0px auto;background:url(../images/bg.jpg) no-repeat;padding:50px 55px;}#lottery table td{width:142px;height:142px;text-align:center;vertical-align:middle;font-size:24px;color:#333;font-index:-999}#lottery table td a{width:284px;height:284px;line-height:150px;display:block;text-decoration:none;}#lottery table td.active{background-color:#ea0000;}/* 效果CSS結束 */
JS中可設定參數:
index:-1, //當前轉動到哪個位置,起點位置
count:0, //總共有多少個位置
timer:0, //setTimeout的ID,用clearTimeout清除
speed:20, //初始轉動速度
times:0, //轉動次數
cycle:50, //轉動基本次數:即至少需要轉動多少次再進入抽獎環節
prize:-1, //中獎位置
最後奉上示範圖