博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

jquery导航动画

Posted on 2015-05-07 09:48  PHP-张工  阅读(562)  评论(0编辑  收藏  举报

经常在网上看到的,鼠标在导航上移动时,导航底部的横条会自动移动到鼠标悬浮的导航项上。

效果如下图:

利用jquery的 animate 函数,很好实现。代码很简单!

代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>测试</title>
    <script src="http://libs.useso.com/js/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<div class="nav" style="margin: 100px auto; width:960px;">
<a class="active" href="#">首页</a>
<a href="#">产品</a>
<a href="#">新闻中心</a>
<a href="#">关于我们</a>
<a href="#">联系我们</a>
<a href="#">首页</a>
<a href="#">首页</a>
<div class="line"></div>
</div>
<style>

.nav{
    position:relative;
}
.nav a{
    padding:10px 20px;
    border-bottom:solid 3px #fff;
    text-decoration: none;
    color:#666;
}
.nav a:hover{
    color:#66f;
}
.nav .active, .nav .active:hover{
    color:#f33;
}
.nav .line{
    position:absolute;
    border-top:solid 2px red;
    width:0;
    left:0;
    top:0;
}

</style>
<script>

function navLine(o, bo)
{
    var x = '' + (o.position().top + o.outerHeight() - 2) + 'px';
    var y = '' + o.position().left + 'px';
    var w = '' + o.outerWidth() + 'px';
    var h = '2px';
    $('.nav .line').stop();
    
    if (bo)
    {
        $('.nav .line').css({width:w, height:h, top:x, left:y});
    }
    else
    {
        $('.nav .line').animate({width:w, height:h, top:x, left:y});
    }
}

$(function(){
    navLine($('.nav .active'), true);
    $('.nav a').hover(function(){
        navLine($(this));
    }, function(){
        navLine($('.nav .active'));
    });
});

</script>
</body>
</html>

 

下载地址:https://files.cnblogs.com/files/zjfree/jsNavMove.rar