lacy_0001
2016-04-16 10:48
<script type="text/javascript">
window.onload=function(){
var aLi=document.getElementsByTagName('li');
for(var i=0; i<aLi.length;i++){
aLi[i].onmouseover=function(){
startMove(this,400);
}
aLi[i].onmouseout=function(){
startMove(this,200);
}
}
}
var timer=null;
function startMove(obj,iTarget){
clearInterval(timer);
timer=setInterval(function(){
var speed=(iTarget-obj.offsetWidth)/8;
speed = speed >0?Math.ceil(speed):Math.floor(speed);
if(obj.offsetWidth == iTarget){
clearInterval(timer);
}else{
obj.offsetWidth=obj.offsetWidth+speed+'px';
}
},30)
}
</script>
倒数第5行的
obj.offsetWidth=obj.offsetWidth+speed+'px';
改为
obj.style.width=obj.offsetWidth+speed+'px';
就可以了。一开始我也搞不懂为什么,百度了一下,说是
obj.offsetWidth是数值,而obj.style.width是字符串,所以在用obj.offsetWidth+speed+'px'改变宽度时应该赋值给obj.style.width.
JS动画效果
113925 学习 · 1443 问题
相似问题