如今不少網站都有抽獎活動,今天寫下轉盤抽獎,抽獎插件的手記,但願對您有用。javascript
參與了微一熱的活動大轉盤開發,具體效果能夠看官網演示:http://www.weiyr.com/dzp/infocss
如下爲案例的微信轉盤代碼:前端
代碼引用腳本java
<script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" src="js/jQueryRotate.2.2.js"></script> <script type="text/javascript" src="js/jquery.easing.min.js"></script>
H5方面轉盤簡單Demo寫法:jquery
<div class="ly-plate"> <div class="rotate-bg"></div> <div class="lottery-star"><img src="rotate-static.png" id="lotteryBtn"></div> </div>
樣式方面:web
<style type="text/css"> *{padding:0;margin:0} body{ text-align: center; background-color: #1664ad; } .ly-plate{ position:relative; width:509px; height:509px; margin: 50px auto; } .rotate-bg{ width: 509px; height: 509px; background: url(ly-plate.png); position: absolute; top: 0; left: 0; margin-top: 0%; } .ly-plate div.lottery-star{ width:214px; height:214px; position:absolute; top:150px; left:147px; /*text-indent:-999em; overflow:hidden; background:url(rotate-static.png); -webkit-transform:rotate(0deg);*/ outline:none } .ly-plate div.lottery-star #lotteryBtn{ cursor: pointer; position: absolute; top:0; left:0; *left:-107px } </style>
轉盤的前端腳本:後端
<script type="text/javascript"> $(function(){ var timeOut = function(){ //超時函數 $("#lotteryBtn").rotate({ angle:0, duration: 10000, animateTo: 2160, //這裏是設置請求超時後返回的角度,因此應該仍是回到最原始的位置,2160是由於我要讓它轉6圈,就是360*6得來的 callback:function(){ alert('網絡超時') } }); }; var rotateFunc = function(awards,angle,text){ //awards:獎項,angle:獎項對應的角度 $('#lotteryBtn').stopRotate(); $("#lotteryBtn").rotate({ angle:0, duration: 5000, animateTo: angle+1440, //angle是圖片上各獎項對應的角度,1440是我要讓指針旋轉4圈。因此最後的結束的角度就是這樣子^^ callback:function(){ alert(text) } }); }; $("#lotteryBtn").rotate({ bind: { click: function(){ var time = [0,1]; time = time[Math.floor(Math.random()*time.length)]; if(time==0){ timeOut(); //網絡超時 } if(time==1){ var data = [1,2,3,0]; //返回的數組 data = data[Math.floor(Math.random()*data.length)]; if(data==1){ rotateFunc(1,157,'恭喜您抽中的一等獎') } if(data==2){ rotateFunc(2,247,'恭喜您抽中的二等獎') } if(data==3){ rotateFunc(3,22,'恭喜您抽中的三等獎') } if(data==0){ var angle = [67,112,202,292,337]; angle = angle[Math.floor(Math.random()*angle.length)] rotateFunc(0,angle,'很遺憾,此次您未抽中獎') } } } } }); }) </script>
活動經過後端提供轉盤的中獎機率,大轉盤前端只須要作好UI與Js 大轉盤就能夠完成數組
基本上設計轉盤沒有太大難點。UI界面反而是最重要的微信