JavaScript setTimeout setInterval

时间:2013-04-24 09:25:34

标签: javascript settimeout setinterval

我正在为一个网站编写一些代码,我想要创建一个165px x 2px的行,然后显示然后消失并继续执行到无穷大。我用JavaScript编写了这段代码:

function sivapokretna() {
        document.getElementById("pokretnasiva").style.width= "165px";
        setTimeout("document.getElementById('pokretnasiva').style.width= '0px';", 4000);
}

function sivo() {
    setInterval(sivapokretna(), 8000);
}

正如您所看到的,在第一个函数中,我将div元素的大小从0更改为165,然后在延迟之后将其重新设置为0.出于某种原因,尽管我在setInterval中使用了setInterval,但它只执行了一次。第二个功能。不要混淆,我已经完成了CSS3 3秒转换。这是正在改变的元素代码的CSS部分。

#pokretnasiva {
    width: 0px;
    height: 2px;
    background: #ff0000;
    transition: width 3s;
}

2 个答案:

答案 0 :(得分:1)

您需要将对该函数的引用传递给setInterval。您正在调用该函数,因此您实际上正在传递其返回值undefined,因为没有明确的return语句。)

您需要删除调用的括号:

setInterval(sivapokretna, 8000);
//                     ^--- No invoking parentheses here!

答案 1 :(得分:1)

调用该函数,立即运行,然后告诉setInterval一遍又一遍地运行undefined(函数的返回值)。

您需要传递函数,而不是调用函数并传递其返回值。

删除()

setInterval(sivapokretna, 8000)