导航那里,如果鼠标快速跨越2个A标签,然后文字就会抖动了,你们的会么,应该是定时器问题,怎么解决?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>导航菜单</title>
<style type="text/css">
*{margin:0; padding:0; font-size:14px;}
ul{ list-style:none;}
a{color:#333;text-decoration:none}
.nav{border-bottom: 5px solid #F60;padding-left: 50px;height: 30px;margin-top: 50px;}
.nav li{ float: left;}
.nav li a{ display:block; text-align: center; height:30px; line-height:30px; width:100px; background-color:#efefef; margin-bottom:1px;}
.nav .on,.nav li a:hover{ background-color:#F60; color:#fff;}
</style>
<script>
window.onload=function(){
function getstyle(obj,attr){
return( obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr]);//各种浏览器下获取变量的属性参数
}
var oul=document.getElementsByTagName('ul')[0];
var aA=oul.getElementsByTagName('a');
var timer=null;
var timer1=null;
for(var i=0;i<aA.length;i++){
aA[i].onmouseover=function(){
var _this=this;
//alert(getstyle(_this,'width'));
clearInterval(timer);
timer=setInterval(function(){
// _this.style.width=_this.style.width+8+'px'; //width 不可以直接加的 要用getstyle 那个函数获取值 再加px
//_this.style.width=_this.offsetWidth+8+'px';
_this.style.width= parseInt(getstyle(_this,'width'))+8+'px';
if(parseInt(getstyle(_this,'width'))>=160){clearInterval(timer);}
},30)
}
aA[i].onmouseout=function(){
var _this1=this;
clearInterval(timer1);
timer1=setInterval(function(){
// _this.style.width=_this.style.width+8+'px'; //width 不可以直接加的 要用getstyle 那个函数获取值 再加px
//_this.style.width=_this.offsetWidth+8+'px';
_this1.style.width= parseInt(getstyle(_this1,'width'))-8+'px';
if(parseInt(getstyle(_this1,'width'))<=100){clearInterval(timer1);_this1.style.width=100+'px';}
},30)
}
}
}
</script>
</head>
<body>
<ul class="nav">
<li><a href="#" class="on">首 页</a></li>
<li><a href="#">新闻快讯</a></li>
<li><a href="#">产品展示</a></li>
<li><a href="#">售后服务</a></li>
<li><a href="#">联系我们</a></li>
</ul>
</body>
</html>