我做了一个程序,按下按钮,div随机定位。
function Init()
{
div = document.getElementById("pixel");
spaceW = screen.height - div.height;
spaceH = screen.width - div.width;
setInterval(moveIt, 1000);
}
function moveIt()
{
div.style.top = (100*Math.random()) + "%";
div.style.left = (100*Math.random()) + "%";
}
问题是,只有在我使用setInterval
时它才有效。我只希望div移动ONCE。我会删除setInterval
,然后呢?
答案 0 :(得分:0)
如果您查看文档,您会看到setInterval()以特定和定期的间隔发生火灾。如果您只想触发ONCE功能,请改用setTimeout():
function Init()
{
div = document.getElementById("pixel");
spaceW = screen.height - div.height;
spaceH = screen.width - div.width;
setTimeout(moveIt, 1000);
}
function moveIt()
{
div.style.top = (100*Math.random()) + "%";
div.style.left = (100*Math.random()) + "%";
}
Init();
#pixel
{
width: 50px;
height: 50px;
background-color: red;
position: absolute;
}
<div id="pixel"></div>
答案 1 :(得分:0)
SetInterval重复每个给定的间隔
setTimeout在超时到期时运行一次
如果您想要运行一次
,则需要使用setTimeout function sayHi() {
alert('Hello');
}
setTimeout(sayHi, 1000)
请参阅我未创建的fiddle
答案 2 :(得分:0)
如果它以这种方式工作,那么为setInterval()声明一个变量然后你可以在另一个函数中销毁那个间隔,比如varible.clearInterval()
some=setInterval(moveIt,200);//this one in caller function.
some.clearInteraval();//here this statment should be in moveIt
这里你应该声明一些为全局变量