0

このコードが私の Web ページの背景色を 2 つの色の間で点滅させない理由を教えてください。

<script type="text/javascript">
function blinkit() {
    intrvl = 0;
    for (nTimes = 0; nTimes < 3; nTimes++) {
        intrvl += 1000;
        setTimeout("document.bgColor='#0000FF';", intrvl);
        intrvl += 1000;
        setTimeout("document.bgColor='#FFFFFF';", intrvl);
    }
}
</script>
4

2 に答える 2

0

setTimeoutと同じくらい悪いので、文字列をに渡さないでくださいeval

代わりに、次のようなものを試してください。

function blinkit(times, thenwhat) {
    var toggle = times*2, timer = setInterval(function() {
            document.body.style.backgroundColor = toggle%2 ? "#0000FF" : "#FFFFFF";
            toggle--;
            if( !toggle) {
                clearInterval(timer);
                thenwhat && thenwhat();
            }
        },1000);
    return timer;
}
var flashy = blinkit(3);
// The background will flash three times.
// You can also cancel it with `clearInterval(flashy);`

上記のコードを使用すると、完了時に何かを実行するように指示することもできます。

var flashy = blinkit(3,function() {alert("Hello!");});
于 2013-02-28T20:31:56.320 に答える
0

これを試して:

function blinkit() {
    intrvl = 0;
    window.setInterval(function(){
        intrvl += 1000;
        setTimeout("document.bgColor='#0000FF';", intrvl);
        intrvl += 1000;
        setTimeout("document.bgColor='#FFFFFF';", intrvl);
    }, intrvl);
}
于 2013-02-28T20:23:38.017 に答える