总结及疑问:
$('.block').stop().animate({left:$x+'px'}, 300);
这里的stop()有点疑惑,根据测试,
把它删掉后,每移动一个标签,它都要回去一次,就是执行第二个函数。
个人感觉及查资料后,认为它的作用是:
是当前的动画停止,下一个动画从当前停止的地方开始执行。防止多次执行动画。(感觉描述的还不是很清楚)
代码:
<!DOCTYPE html>
<html>
<head>
<title>下划线跟随导航</title>
<meta charset="utf-8">
<script type="text/javascript" src="jq.js"></script>
<style type="text/css">
*{
padding:0px; margin:0px;
}
ul{
list-style: none; z-index: 20; position: relative; font-size: 15px;
}
li{
float:left;
cursor:pointer;
width:100px;
height:30px;
text-align: center;
line-height: 30px;
color:#fff;
font-weight: bold;
}
.menu{
width:700px;
position:relative;
margin:20px auto;
height:32px;
box-shadow: 0px 2px 20px #000;
background:#af3434;
border-radius: 3px;
}
</style>
<script type="text/javascript">
$(function(){
$('li').hover(
function(){
$x = parseInt($(this).attr('name'))*100;
$('.block').stop().animate({left:$x+'px'}, 300);//停止当前动画,stop()是为了阻止N个动画一直执行完毕。
},
function(){
$('.block').stop().animate({left:'0px'}, 300);
}
)
})
</script>
</head>
<body>
<div class="menu">
<ul>
<li name="0">首页</li>
<li name='1'>php中文网</li>
<li name='2'>猪哥</li>
<li name='3'>朱老师</li>
<li name='4'>灭绝小师太</li>
<li name='5'>欧阳克</li>
<li name='6'>韦小宝</li>
</ul>
<div class="block" style="z-index: 10; width:100px; height:2px; background:#fff; position:absolute; top:30px;"></div>
</div>
</body>
</html>