jquery 实现导航栏滑动效果

原文:http://www.cnblogs.com/WebMobile/p/3926921.html

精简的代码实现导航栏滑动效果,实现详解:

1.滑块位置:通过父节点position=fixed,子节点position=absolute方式,实现子节点浮动;

2.导航栏居中:通过left=0px,right=0px,margin-left=auto,margin-right=auto实现;

3.通过jQuery动态改变滑块的Left和Width,然后通过animate实现动画效果。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"></meta>
    <title>滑动导航栏</title>
    <script scr=""></script><script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <link rel="stylesheet" href="style.css" type="text/css" />
    <style type="text/css">
        body,div,p{
            margin:0; 
            padding:0;
        }
        .nav{
            background-color:black;
            position:fixed;
            left:0px;
            right:0px;
            width:80%;
            margin:10px auto;
            text-align:center;
            height:37px;
        }
        .nav a{
            padding:10px;
            color:white;
            line-height:30px;
            text-decoration:none;
            height:37px;
        }
        #navslip{
            height:2px;
            background-color:#8f919e; 
            position:absolute; 
            bottom:7px; 
            width:0px;
            left:0px;
            display:none;
            overflow:hidden;
        }
    </style>
</head>
<body>
    <div class="nav">
        <a href="http://baidu.com" target="_black" >百度</a>
        <a href="http://sina.com" target="_black" >新浪</a>
        <a href="http://58.com" target="_black" >58同城</a>
        <a href="http://sentsin.com/message/" target="_black" title="留言">致时光</a>
        <a href="http://sentsin.com/daohang/" target="_black">前端圈</a>
        <i id="navslip"></i>
    </div>
    <script>
        $(function (){
            setSlip();
        });
        var setSlip = function(){
            var slip = $('#navslip');
            var a = $('.nav a:first');
            //初始化滑块
            slip.css({
                'width':a.width()+10,
                'left' :parseInt(a.position().left) + 5 +'px'
            });
            $('.nav a').mouseenter(function(){
                //显示滑块
                if(slip.css('display') == 'none'){
                    slip.show();
                };
                //移动滑块
                slip.stop().animate({
                    width: $(this).width()+10,
                    left:  parseInt($(this).position().left) + 5 +'px'
                },300);
            });
        };
    </script>
</body>
</html>

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您介绍一下如何使用HTML、CSS、JavaScript和jQuery实现一个伸缩导航栏。 首先,我们需要在HTML文件中创建一个导航栏的结构。这可以通过一个无序列表(ul)和一些列表项(li)来实现。每个列表项都应该包含一个链接,以便我们可以在导航栏中添加不同的页面链接。例如: ```html <nav> <ul class="menu"> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Services</a></li> <li><a href="#">Contact</a></li> </ul> </nav> ``` 接下来,我们需要使用CSS来设置导航栏的样式。我们可以使用CSS的层级选择器来选择导航栏中的列表项,并为其设置样式。例如: ```css nav ul.menu { list-style: none; margin: 0; padding: 0; background-color: #333; } nav ul.menu li { display: inline-block; } nav ul.menu li a { display: block; color: #fff; padding: 10px; text-decoration: none; } ``` 现在,我们可以使用jQuery实现导航栏的伸缩效果。我们可以使用jQuery的文档就绪函数来确保页面加载后我们的代码可以正常运行。然后,我们可以使用jQuery的动画函数来创建一个简单的滑动效果。例如: ```javascript $(document).ready(function() { $('nav ul.menu').hide(); $('nav').hover(function() { $('ul.menu').slideDown('fast'); }, function() { $('ul.menu').slideUp('fast'); }); }); ``` 以上代码中,我们首先使用了`$('nav ul.menu').hide();`来将导航栏隐藏起来。然后,我们使用了`$('nav').hover(function() {...}, function() {...});`来为导航栏添加鼠标悬停事件。当鼠标悬停在导航栏上时,我们使用了`$('ul.menu').slideDown('fast');`来显示导航栏。当鼠标移开时,我们使用了`$('ul.menu').slideUp('fast');`来隐藏导航栏。 现在,您就可以在您的网站上使用这个伸缩导航栏了!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值