为什么我做出来的效果会抽搐?

来源:4-1 JS多物体动画

ZXJ03

2016-10-19 22:59

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<style type="text/css">
	*{
		padding: 0;
		margin:0;
	}
	ul li{
		width: 100px;
		height: 100px;
		background:green;
		margin-bottom: 10px; 

	}
	</style>
	<script type="text/javascript">
		var timer;
	
		window.onload=function(){
			var ali=document.getElementsByTagName("li");
			for(var i=0;i<ali.length;i++){
				ali[i].timer=null;
				ali[i].onmouseover=function(){
				startMove(this,200);

			}
			 ali[i].onmouseout=function(){
				startMove(this,0);
			}
		}
			
			

			
		}
		function startMove(obj,iTarget){
				
				clearInterval(obj.timer);
				timer=setInterval(function(){
				speed=(iTarget-obj.offsetWidth)/8;	
				speed=speed>0?Math.ceil(speed):Math.floor(speed);	
				if(obj.offsetWidth==iTarget){
					
					clearInterval(obj.timer);
				}
				else{				
					obj.style.width=obj.offsetWidth+speed+'px';
				}
},50);
			}
	</script>
</head>
<body>
<ul>
	<li></li>
	<li></li>
	<li></li>
</ul>

</body>
</html>

为什么我做出来的效果会抽搐?

要怎么改?

写回答 关注

1回答

  • 黑色秋水
    2016-10-20 06:46:04
    已采纳

    因为你的timer没有绑定在元素上,看第42行,所以你一直没有真正关掉定时器;绑定后就没问题了;

    黑色秋水 回复ZXJ03

    互相帮助;

    2016-10-21 10:59:50

    共 2 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113923 学习 · 1443 问题

查看课程

相似问题