我正在为一个网站编写一些代码,我想要创建一个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;
}
答案 0 :(得分:1)
您需要将对该函数的引用传递给setInterval
。您正在调用该函数,因此您实际上正在传递其返回值(undefined
,因为没有明确的return
语句。)
您需要删除调用的括号:
setInterval(sivapokretna, 8000);
// ^--- No invoking parentheses here!
答案 1 :(得分:1)
您调用该函数,立即运行,然后告诉setInterval
一遍又一遍地运行undefined
(函数的返回值)。
您需要传递函数,而不是调用函数并传递其返回值。
删除()
。
setInterval(sivapokretna, 8000)