随机化div位置

时间:2018-01-18 16:42:01

标签: javascript html random

我做了一个程序,按下按钮,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,然后呢?

3 个答案:

答案 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
  

这里你应该声明一些为全局变量