js 抽獎轉盤實現


今天用js實現轉盤抽獎功能,從后台返回的值可以固定轉盤選擇停止的任意位置

實現代碼如下:

js:

<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代碼:

 <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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM