Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。
我们在做页面导航的时候可能的需求是--实现导航栏固定在顶部,并且当页面滑动时带过渡动画效果,今天就给大家分享一下如何利用Bootstrap来制作一个当页面滚动时顶部导航栏动画向下滑出,然后固定的效果实现。还是按照惯例,先贴出实现的代码。
1.HTML页面代码:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Bootstrap实现导航栏固定在顶部的示例教程(页面滑动时带过渡动画)</title> <meta charset="utf-8" /> <link href="Content/bootstrap.min.css" rel="stylesheet" /> <link href="Content/site.css" rel="stylesheet" /> <script src="Scripts/jquery-1.9.1.min.js"></script> <script src="Scripts/bootstrap.min.js"></script> <script src="Scripts/main.js"></script> </head> <body> <div class="header-bar-container"> <nav class="navbar"> <div class="container"> <div class="navbar-header"> <button aria-controls="navbar" aria-expanded="false" data-target="#navbar" data-toggle="collapse" class="navbar-toggle collapsed" type="button"> <span class="sr-only">导航栏切换</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a href="#" class="navbar-brand">示例教程</a> </div> <div class="navbar-collapse collapse" id="navbar"> <ul class="nav navbar-nav"> <li class="active"><a href="#">首页</a></li> <li><a href="#about">关于我们</a></li> <li><a href="#contact">联系我们</a></li> <li class="dropdown"> <a aria-expanded="false" aria-haspopup="true" role="button" data-toggle="dropdown" class="dropdown-toggle" href="#">菜单列表<span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#">订单列表</a></li> <li><a href="#">我的消息</a></li> <li><a href="#">系统设置</a></li> <li class="divider" role="separator"></li> <li class="dropdown-header"></li> <li><a href="#">修改密码</a></li> <li><a href="#">退出系统</a></li> </ul> </li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a href="../navbar/">帮助中心</a></li> <li><a href="../navbar-static-top/">问题反馈</a></li> <li class="active"><a href="./">联系客服<span class="sr-only">(current)</span></a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> </div> <div class="container"> <div class="main-container"> <div class="jumbotron"> <h1>Bootstrap实现导航栏固定在顶部的示例教程</h1> <p>Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。</p> <p> <a role="button" href="http://getbootstrap.com/" class="btn btn-lg btn-primary">了解更多关于Bootstrap »</a> </p> </div> </div> </div> </body> </html>2.CSS样式表:
.jumbotron h1 { font-size: 30px; } .header-bar-container.fixed { left: 0; position: fixed; top: 0; width: 100%; z-index: 999; } .header-bar-container { background-color: #333; color: #fff; font-size: 14px; line-height: 1.5; min-height: 36px; padding:0; z-index: 999; border-radius:0; } .header-bar-container .navbar { margin-bottom:0; } .nav > li > a:hover, .nav > li > a:focus { background-color: #333; color: #fff; } .nav .open > a, .nav .open > a:focus, .nav .open > a:hover { background-color: #333; color: #fff; } .main-container { margin-top:50px; min-height: 1500px; }3.JS代码:
$(function () { var topbar = $('.header-bar-container'); //fixed navigation bar to top --PC if (topbar.is('*')) { var elem = $('.jumbotron'); var offset = elem.offset(); var leftValue = offset.left; var topValue = offset.top + 100; var width = elem.width(); var topbarHeight = topbar.height(); var stickyDiv = '<div class="sticky-placeholder" style="height:' + topbarHeight + 'px"></div>'; $(window).scroll(function (event) { var y = $(this).scrollTop(); if (y >= topValue) { if (topbar.hasClass('fixed')) { } else { topbar.addClass('fixed').addClass('sticky'); $('#page header').prepend(stickyDiv); topbar.css({ top: '-' + topbarHeight + 'px', width: '100%' }); topbar.animate({ top: '0' }, 500, function () { }); } } else { if (topbar.hasClass('sticky')) { topbar.removeClass('sticky'); topbar.animate({ top: '-' + topbarHeight + 'px' }, 100, function () { $('.sticky-placeholder').remove(); topbar.removeClass('fixed'); }); //topbar.fadeOut('fast', function () { // topbar.fadeIn('fast'); //}); } } }); } });实现过程中没有什么太难的地方,关键的还是实现的思路。 查看即时效果请点击-> 演示效果 如需下载Bootstrap实现导航栏固定在顶部的示例教程(页面滑动时带滑出的过渡动画)的 示例代码,请点击这里>> 如果你有更好的实现方式,欢迎反馈交流。
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册