我要做的是当您滚动浏览时,导航栏会保持在页面顶部。由于我对JavaScript很陌生,我看了一些教程,但是,它们都没有真正使用Bootstrap导航栏。我只是想知道是否有办法这样做,以便它与Bootstrap列一起使用。
另外,我怎么能这样做,以便在它滚动时,背景颜色开始淡入?
以下是导航栏的HTML代码,如果有帮助:
<div class="container">
<nav class="navbar navbar-default" id="mNavbar">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false" id="toggle">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">Home</a></li>
<li><a href="#section2">Services</a></li>
<li><a href="#section3">Contact</a></li>
</ul>
</div>
</div>
</nav>
</div>
答案 0 :(得分:8)
Bootstrap 3有一个类.navbar-fixed-top
,可以应用于nav
元素以固定到页面顶部。它适用于不同屏幕尺寸的所有基本导航栏功能。作为官方documentation的一部分,有一个例子。
<nav class="navbar navbar-default navbar-fixed-top" id="mNavbar">
如果您需要它从屏幕顶部以一定量的px变粘,那么您需要将滚动事件处理程序附加到页面。然后,您将检查页面滚动的距离,然后应用固定的导航类或设置样式以固定到特定位置。像这样:
$(document).ready(function() {
var $navbar = $("#mNavbar");
AdjustHeader(); // Incase the user loads the page from halfway down (or something);
$(window).scroll(function() {
AdjustHeader();
});
function AdjustHeader(){
if ($(window).scrollTop() > 60) {
if (!$navbar.hasClass("navbar-fixed-top")) {
$navbar.addClass("navbar-fixed-top");
}
} else {
$navbar.removeClass("navbar-fixed-top");
}
}
});
body{
position: relative;
display: block;
height: 1000px;
overflow-y: scroll;
}
.navbar{
top: 60px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<nav class="navbar navbar-default" id="mNavbar">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false" id="toggle">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">Home</a>
</li>
<li><a href="#section2">Services</a>
</li>
<li><a href="#section3">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
我不确定你的意思是填充被添加到顶部和底部,但你可以通过在Bootstrap版本之后将.navbar-fixed-top
添加到样式表并更新填充值来覆盖CSS。可能有一个top
CSS值会使导航栏远离屏幕顶部,您可以通过将top
设置为0
来解决此问题。
希望这有帮助!
答案 1 :(得分:0)
要向下滚动,请将navbar-fixed-top添加到导航代码中,这里的抓点是它会粘在页面顶部,如此
<div class="userTableElementLogout">
<input type="submit" name="ctl01$LogOffButton" value="LOG OFF" id="log-off-button">
</div>