JavaScript设置超时设置间隔
我正在为一个网站写一些代码,我想创建一个165px2px的行,它会出现然后消失,并继续无限地这样做。我用JavaScript编写了以下代码:JavaScript设置超时设置间隔,javascript,settimeout,setinterval,Javascript,Settimeout,Setinterval,我正在为一个网站写一些代码,我想创建一个165px2px的行,它会出现然后消失,并继续无限地这样做。我用JavaScript编写了以下代码: function sivapokretna() { document.getElementById("pokretnasiva").style.width= "165px"; setTimeout("document.getElementById('pokretnasiva').style.width= '0px';", 4
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,但它只执行了一次。不要混淆,我已经用CSS3 3秒转换完成了更改。下面是正在更改的元素代码的CSS部分
#pokretnasiva {
width: 0px;
height: 2px;
background: #ff0000;
transition: width 3s;
}
您需要将对函数的引用传递到
setInterval
。您正在调用函数,因此实际上是在传递它的返回值(这是未定义的
,因为没有显式的返回
语句)
您需要删除调用括号:
setInterval(sivapokretna, 8000);
// ^--- No invoking parentheses here!
您正在调用函数,立即运行,然后告诉
setInterval
反复运行undefined
(函数的返回值)
您需要传递函数,而不是调用函数并传递其返回值
卸下()
谢谢,成功了!但现在开始时有8秒的延迟。。。我怎样才能让它立即开始改变?@user1687538-在调用
setInterval
之前只需调用sivapokretna
。例如:sivapokretna();设定间隔(sivapokretna,8000)代码>
setInterval(sivapokretna, 8000)