1. 程式人生 > 實用技巧 >js實現進度條程式碼

js實現進度條程式碼

首先我們要進行js進度條的佈局

js進度條佈局如下:

</script>
<style type="text/css" id='css'>
    #progress {
        position: fixed;
        background: #000;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 99999;
    }

    #progress p {
        width: 0px;
        height: 30px;
        border-radius: 3px;
        background: #ffcccc;
        color: #330000;
        font-size: 14px;
        font-weight: bold;
        line-height: 30px;
        text-align: center;
        overflow: hidden;
        font-family: 'Microsoft yahei';
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: -15px;
        margin-left: -250px;
    }

    body {
        overflow: hidden;
    }
</style>
</head>

<body>

    <div
id='progress'> <p>0%</p> </div> </body>

寫完了之後,就要開始寫js進度條載入的js程式碼了,程式碼如下:

var oP = document.getElementById('progress').getElementsByTagName('p')[0];
    var oCss = document.getElementById('css');

    function move(num) {
        clearInterval(oP.timer);
        oP.timer = setInterval(function () {
            if (parseInt(oP.innerhtml) < num) {
                var s = parseInt(oP.innerhtml) + 1;
                var w = 500 * s / 100;
                oP.innerHTML = s + '%';
                oP.style.width = w + 'px';
            } else {
                clearInterval(oP.timer);
                if (num == 100) {
                    oP.parentNode.parentNode.removeChild(oP.parentNode);
                    oCss.parentNode.removeChild(oCss);
                    var oScript = document.getElementsByClassName('pMove');
                    var length = oScript.length
                    for (var i = length - 1; i >= 0; i--) {
                        oScript[i].parentNode.removeChild(oScript[i]);
                    }
                }
            }
        }, 10);
    };
</script>

因為考慮到js執行是有先後的順序的,這裡大家一定要注意才行

廣州品牌設計公司https://www.houdianzi.com PPT模板下載大全https://redbox.wode007.com

js進度條全部原始碼展示:

<style type="text/css" id='css'>
    #progress {
        position: fixed;
        background: #000;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 99999;
    }

    #progress p {
        width: 0px;
        height: 30px;
        border-radius: 3px;
        background: #ffcccc;
        color: #330000;
        font-size: 14px;
        font-weight: bold;
        line-height: 30px;
        text-align: center;
        overflow: hidden;
        font-family: 'Microsoft yahei';
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: -15px;
        margin-left: -250px;
    }

    body {
        overflow: hidden;
    }
</style>
</head>

<body>

    <div id='progress'>
        <p>0%</p>
    </div>

    <script>
//js進度條程式碼
        var oP = document.getElementById('progress').getElementsByTagName('p')[0];
        var oCss = document.getElementById('css');

        function move(num) {
            clearInterval(oP.timer);
            oP.timer = setInterval(function () {
                if (parseInt(oP.innerHTML) < num) {
                    var s = parseInt(oP.innerHTML) + 1;
                    var w = 500 * s / 100;
                    oP.innerHTML = s + '%';
                    oP.style.width = w + 'px';
                } else {
                    clearInterval(oP.timer);
                    if (num == 100) { //js進度條程式碼等於100表示載入完成
                        oP.parentNode.parentNode.removeChild(oP.parentNode);
                        oCss.parentNode.removeChild(oCss);
                        var oScript = document.getElementsByClassName('pMove');
                        var length = oScript.length
                        for (var i = length - 1; i >= 0; i--) {
                            oScript[i].parentNode.removeChild(oScript[i]);
                        }
                    }
                }
            }, 10);
        };
    </script>
</body>

<script class='pMove'>
    move(100); //執行到body,表示js進度條已經載入完成,遮罩層退場
</script>

js進度條原理解析:
這裡我們可以看到,進度條預設是0開始的,每走到一個地方,就會執行一個move函式,函式中有個數值,這個數值其實就是進度條走了多少了,我們可以去這樣的分析,因為網站原始碼是從上往下依次載入的,所以我們是不是就可以認為,讓網頁載入完成之後,頁面載入進度就是100%了呢,我們在後面加上一個move(100),正好就是執行完了,所以這個方法是非常巧妙的。

js進度條擷取的圖片如下: