没进行Math.floor之前,oDiv.offsetLeft 跟 iTarget值不同啊,一个是-190,一个是-200,可是怎么运动就停止了呢,oDiv.offsetLeft==iTarget,这个还没成立啊
window.onload=function(){
var oDiv=document.getElementById("div1");
oDiv.onmouseover=function(){
startMove(0);
}
oDiv.onmouseout=function(){
startMove(-200);
}
}
var timer=null;
function startMove(iTarget){
clearInterval(timer);//清空所有定时器
var oDiv=document.getElementById("div1");
timer=setInterval(function(){
speed=(iTarget-oDiv.offsetLeft)/20;
speed=speed>0?Math.ceil(speed):Math.floor(speed);
alert(Math.floor(-0.5));//可以查看最后的变化是1px速度
if(oDiv.offsetLeft==iTarget){
clearInterval(timer);
}
else{
oDiv.style.left=oDiv.offsetLeft+speed+"px";}
}, 10)
}