這個是很簡易的轉盤,只用了html,css,jsjavascript
經過css產生一個轉盤上的指針,用js動態改變css中的transparent改變指針的角度。再添加一個背景圖片相似於獎項的轉盤css
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>dial</title> <link rel="stylesheet" type="text/css" href="dial.css"> <script type="text/javascript" src="dial.js"></script> </head> <body> <div id="sum"> <div id="content"> <div id="tri"> </div> <div id="center"><h1>抽獎</h1></div></div></div> </body> </html>
背景圖片放在sum中,tri是指針上的三角形,center是指針上的圓,三角形和圓都在content中以便一塊兒運動。html
*{ margin: 0px; padding:0px; } #sum{ height: 550px; width: 700px; background-image: url(dial.jpg); position: relative; } #content{ padding: 0px; height: 140px; width: 140px; left: 289px; top: 109px; margin: 120px auto 0px; transform:rotate(0deg); position: absolute; } #center{ height: 140px; width: 140px; border-radius: 140px; background-color: #EE4F10; color: white; line-height: 140px; font-weight: bold; font-size: 30px; text-align: center; z-index: 2; position:relative; } #tri{ height: 0px; width: 0px; top: -27px; left: 26px; border-left: 45px solid transparent; border-right:45px solid transparent; border-bottom: 45px solid #EE4F10; z-index: -1; position: absolute; }
window.onload=function(){ var data=[320,260,180,620,760,380]; var content=document.getElementById("content"); var center=document.getElementById("center"); center.onclick=play; var timer=null; var count=0; var degv=0; var random=0; function play(){ count=0; random=Math.floor(Math.random()*6); clearInterval(timer); timer=setInterval(function(){ roll(); },30); } function roll(){ degv=count++; degv=degv*20; if(degv==data[random]) { clearInterval(timer);} content.style.webkitTransform="rotate("+degv+"deg)"; content.style.msTransform="rotate("+degv+"deg)"; content.style.MozTransform="rotate("+degv+"deg)"; content.style.OTransform="rotate("+degv+"deg)"; content.style.transform="rotate("+degv+"deg)"; } }
設置一個定時器不斷的調用roll方法不斷的加指針旋轉的角度,直到等於數組中隨機選中的角度就會停下來。java