javascript Math.floor()与Math.ceil()的问题.

2025-05-13 01:24:28
推荐回答(1个)
回答(1):

使用Math.ceil()函数 会陷入死循环
function move2(eid)
{
var elem = document.getElementById(eid);
var ypos = parseInt(elem.style.top)
if(ypos>-400)
{
dist = Math.floor(((-400)-ypos)/10);
ypos = ypos + dist;
}
else
{
alert(ypos)
//-400
setTimeout("move3('"+eid+"')",1000);
return false;
}
elem.style.top = ypos+"px";
setTimeout("move2('"+eid+"')",10);
}

dist = Math.floor(((-400)-ypos)/10);这一句,当ypos>=391时,dist=0;
函数执行无数次,一样ypos 不会增加,dist始终等于0.
用floor 就不会存在这个问题。