首页 > 代码库 > jQuery 滑动菜单效果
jQuery 滑动菜单效果
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<style>
*{
padding:0;
margin:0;
}
ul,li{
list-style:none;
}
.nav{
height:30px;
background:rgba(224,0,0,.5) !important;
}
.nav li{
float:left;
padding:0px 20px;
line-height:30px;
height:30px;
cursor:pointer;
}
.nav li a{
color:#fff;
text-decoration:none;
display: block;
}
.nav li:hover{
background:red;
}
.box{
position:relative;
}
.active{
position:absolute;
height:5px;
background:orange;
}
</style>
<body>
<div class="box">
<ul class="nav">
<li class="hover"><a href="http://www.mamicode.com/#">菜单1</a></li>
<li><a href="http://www.mamicode.com/#">菜单2</a></li>
<li><a href="http://www.mamicode.com/#">菜单3</a></li>
<li><a href="http://www.mamicode.com/#">菜单4</a></li>
<li><a href="http://www.mamicode.com/#">菜单5</a></li>
<li><a href="http://www.mamicode.com/#">菜单6</a></li>
<li><a href="http://www.mamicode.com/#">菜单7</a></li>
<li><a href="http://www.mamicode.com/#">菜单8</a></li>
<li><a href="http://www.mamicode.com/#">菜单9</a></li>
</ul><!--nav-->
<div class="active"></div>
</div><!--box-->
</body>
</html>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script>
$(function(){
//获取第一个li的宽度
var firstLiWidth = $(‘.nav li‘).eq(0).outerWidth();
//定义动画菜单的宽度
$(‘.active‘).css(‘width‘, firstLiWidth+‘px‘);
//鼠标进入时,active跟随,根据它的索引值来定位
$(‘.nav li‘).mouseover(function(){
// alert($(this).index());
$(‘.active‘).stop().animate({
left: $(this).index() * firstLiWidth +‘px‘
}, 400);
}).mouseout(function(){
//鼠标离开的时候,遍历所有li然后根据哪个有 hover这个class的时候那么鼠标就停留在那里
$(‘.nav li‘).each(function(){
if ($(this).hasClass(‘hover‘)) {
$(‘.active‘).stop().animate({
//根据它的索引值和第一个菜单宽度来定它的位置
left: $(this).index() * firstLiWidth +‘px‘
}, 400);
};
});
});
//鼠标点击的时候加上class让它进行active的定位
$(‘.nav li‘).click(function(){
$(this).addClass(‘hover‘).siblings().removeClass();
});
})
</script>