qq_马五寨小子_0
2016-01-31 19:09
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)
}
复制了一下你的代码测试了一下,应该是停在-190.5这个数的。
原因我理解的是这样的:因为-190.5还差-9.5就达到了-200,但是如果在进行运算的话,就是比-200小了。
好比10/3,结果是3余1,永远会留下一个1,这个1就相当于上面所说的-9.5.
不知道
JS动画效果
113925 学习 · 1443 问题
相似问题