首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网页背景彩色闪光灯

网页背景彩色闪光灯
EN

Stack Overflow用户
提问于 2013-02-28 19:58:46
回答 2查看 911关注 0票数 0

有人能告诉我为什么这段代码不会在两种颜色之间闪现我网页的背景颜色吗?

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

发布于 2013-02-28 20:23:38

试试这个:

代码语言:javascript
复制
function blinkit() {
    intrvl = 0;
    window.setInterval(function(){
        intrvl += 1000;
        setTimeout("document.bgColor='#0000FF';", intrvl);
        intrvl += 1000;
        setTimeout("document.bgColor='#FFFFFF';", intrvl);
    }, intrvl);
}
票数 0
EN

Stack Overflow用户

发布于 2013-02-28 20:31:56

不要将字符串传递给setTimeout,因为它与eval一样糟糕。

相反,可以尝试这样的方法:

代码语言:javascript
复制
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);`

使用上面的代码,您还可以让它在完成时做一些事情:

代码语言:javascript
复制
var flashy = blinkit(3,function() {alert("Hello!");});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15144522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档