今天用js實現轉盤抽獎功能,從後臺返回的值能夠固定轉盤選擇中止的任意位置html
實現代碼以下:數組
js:spa
<script> var auto, count = 0, i = 0;//auto:時間對象 count:計數器 ,i : 計數器 var resultCode = "";//後臺返回的結果的值 var arry = [ "1", "2", "3", "4", "5", "6", "7","8"]; //返回值的數組,圖片以數組中的數字命名 function turn() { /// <summary> /// 轉盤旋轉 /// </summary> i = (i == arry.length - 1) ? 0 : i + 1; $("#imgTurn").attr("src", "/Content/Images/" + arry[i] + ".png"); //如下調整能夠設置轉盤轉速 if (count < 20) { auto = setTimeout(turn, 80); } else if (count >= 20 && count < 30) { auto = setTimeout(turn, 120); } else if (count >= 30 && count < 40) { auto = setTimeout(turn, 160); } else if (count >= 40 && count < 50) { auto = setTimeout(turn, 280); } else if (count >= 50 && count < 60) { auto = setTimeout(turn, 500); } else { auto = setTimeout(turn, 1000); } if (arry[i] == resultCode) { //當等於後臺返回的值的時候中止轉 count = 0; resultCode = 0; clearTimeout(auto); $("#but_bulliondraw").bind("click", fun); return; } count += 1; } function beginTurn() { /// <summary> /// 開始旋轉 /// </summary> /// <returns type=""></returns> if (count == 0) { $("#imgTurn").attr("src", "/Content/Images/" + arry[i] + ".png"); turn(); return true; } else { return false; } } $(function () { //點擊開始旋轉 $("#but_bulliondraw").bind("click", fun); }); var fun = function () { $("#but_bulliondraw").unbind("click"); if (beginTurn()) { //這裏能夠從後臺請求返回的值,賦值給resultCode setTimeout(function () { resultCode = 2 }, 5000); } }; </script>
html代碼:code
<div style="margin:0 auto; width:500px;"> <p> <img src="/Content/Images/orderedList0.png" id="imgTurn" />@*默認有一張所有亮的圖片*@ </p> <input type="button" id="but_bulliondraw" value="開始抽獎" /> </div>