0

プログレスバーの読み込みが完了して最後に到達したときに、現在のように繰り返し繰り返すのではなく、別の関数 (つまり、 test() ) を実行できるように、以下のコードを変更するにはどうすればよいですか。

<html> 
    <head> 
        <script type="text/javascript"> 
        var prg_width = 200; 

        function progress() { 
            var node = document.getElementById('progress'); 
            var w    = node.style.width.match(/\d+/); 

            if (w == prg_width) { 
                w = 0; 
            } 

            node.style.width = parseInt(w) + 5 + 'px'; 
        } 

        </script> 
    </head> 

    <body onload="var progress_run_id = setInterval(progress, 30);"> 

        <div style="border: 1px solid #808080; width:200px; height:5px;"> 
            <div id="progress" style="height:5px; width:0px; background-color:#DBDBDB;"/> 
        </div> 

    </body> 
</html> 

皆様のご協力に感謝いたします。

乾杯、

ジェイ

4

4 に答える 4

1

代わりにこの別の関数を呼び出します

w = 0;

ライン。もお忘れなくclearInterval(progress_run_id)

于 2012-09-11T16:57:40.180 に答える
0
<script type="text/javascript"> 
        var prg_width = 200; 

        function progress() { 
            var node = document.getElementById('progress'); 
            var w    = node.style.width.match(/\d+/); 

            if (w == prg_width) { 
                test(); 
                clearInterval(progress_run_id);
            } 

            node.style.width = parseInt(w) + 5 + 'px'; 

        } 

        </script> 
于 2012-09-11T16:59:26.123 に答える
0
<html> 
<head>
<script type="text/javascript"> 
var prg_width = 200; 
var progress_run_id = null;

function progress() { 
var node = document.getElementById('progress'); 
    var w  = node.style.width.match(/\d+/); 
    if (w == prg_width) { 
        clearInterval( progress_run_id );
        w = 0;
    } else {
        w = parseInt(w) + 5 + 'px';             
    }
    node.style.width = w;
}
function initialize(){
    progress_run_id = setInterval(progress, 30);
}
window.onload = initialize();
</script> 
</head> 
<body> 
        <div style="border: 1px solid #808080; width:200px; height:5px;"> 
        <div id="progress" style="height:5px; width:0px; background-color:#DBDBDB;"/> 
        </div> 
</body> 
</html>
于 2012-09-11T17:09:01.707 に答える
0
  var prg_width = 200; 

        function progress() { 
            var node = document.getElementById('progress'); 
            var w    = node.style.width.match(/\d+/); 

            if (w == prg_width) { 
                test(); // CHANGE THIS
                clearInterval(progress_run_id);
            } 

            node.style.width = parseInt(w) + 5 + 'px'; 
        } 

幅が完成した幅と等しいかどうかをチェックします。そうである場合は、間隔をクリアして、関数を呼び出しますtest

于 2012-09-11T16:56:57.760 に答える