使用Bootstrap 4,如何使固定顶部导航栏在滚动时消失?我已在HTML代码下方附加了默认的Bootstrap 4导航栏。
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
<a class="navbar-brand" href="#">Test</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
<ul class="navbar-nav ml-auto py-md-2">
<li class="nav-item active">
<a class="nav-link" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
</ul>
</div>
</nav>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
答案 0 :(得分:6)
提示也打败了我。与他的答案相似,但不使用短代码。
jQuery
// scroll functions
$(window).scroll(function(e) {
// add/remove class to navbar when scrolling to hide/show
var scroll = $(window).scrollTop();
if (scroll >= 150) {
$('.navbar').addClass("navbar-hide");
} else {
$('.navbar').removeClass("navbar-hide");
}
});
CSS导航栏淡出选项
编解码演示https://www.codeply.com/go/rTR1dcn4n6
.navbar {
opacity: 1;
transition: opacity 0.5s ease;
}
.navbar-hide {
pointer-events: none;
opacity: 0;
}
CSS导航栏向上滑动选项
编解码演示https://www.codeply.com/go/7Fab8Thufl
.navbar {
transition: top 0.5s ease;
}
.navbar-hide {
top: -56px;
}
如果您不喜欢更少的代码,Cue的答案可能会更好,这是下面使用我的hide类的方法。
提示的jQuery
// scroll functions
$(window).scroll(function(e) {
// add/remove class to navbar when scrolling to hide/show
$('.navbar')[$(window).scrollTop() >= 150 ? 'addClass' : 'removeClass']('navbar-hide');
});
CSS导航栏淡出选项(与上面相同)
编解码演示https://www.codeply.com/go/KPnx8ewEED
CSS导航栏向上滑动选项(与上面相同)
答案 1 :(得分:4)
要在达到特定偏移量时有条件地移除导航栏的固定位置(在本示例中,我们将使用距视口顶部的150px),则可以执行以下操作:
$(window).on('scroll', function (e) {
$('.navbar')[$(window).scrollTop() >= 150 ? 'removeClass' : 'addClass']('fixed-top');
})
根据ajax333221的评论,也可以使用toggleClass()
:
$(window).on('scroll', function (e) {
$('.navbar').toggleClass('fixed-top', $(window).scrollTop() < 150);
})
答案 2 :(得分:0)
固定顶部强制导航保持固定到视口顶部。
“具有以下位置的元素:固定;相对于 视口,这意味着即使 页面被滚动。使用top,right,bottom和left属性 定位元素。”
HTML元素在您向下滚动时会自然移动。如果希望导航与内容一起滚动,则需要删除此类。