gpt4 book ai didi

javascript - 使 Bootstrap 导航栏在滚动时折叠?

转载 作者:行者123 更新时间:2023-11-28 08:19:50 26 4
gpt4 key购买 nike

一旦我在常规桌面版本上滚动经过它,我试图让我的 Bootstrap 导航栏在其非折叠状态和移动/折叠状态之间变化。

我曾尝试使用 jQuery,但这迫使我编写 css 更改,一旦 scrollTop > 像素数,这些更改就会导致 jQuery 中逐行崩溃。

即使我执行了上述操作,不幸的是,即使移动导航栏会出现,菜单选项也会始终存在,并且不会在单击汉堡包时关闭。

我忍不住认为肯定有一种更简单的方法可以做到这一点,但我是 Bootstrap 的新手。

提前致谢。

编辑,这是我试过的代码:

这个 CSS 是导致导航栏在我希望的高级点切换到移动版本的原因:

@media (max-width: 1150px){
.navbar-header {
float: none;
}
.navbar-toggle {
display: block;
}
.navbar-collapse {
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}
.navbar-collapse.collapse {
display: none!important;
}
.navbar-nav {
float: none!important;
margin: 7.5px -15px;
}
.navbar-nav>li {
float: none;
}
.navbar-nav>li>a {
padding-top: 10px;
padding-bottom: 10px;
}
.navbar-text {
float: none;
margin: 15px 0;
}
/* since 3.1.0 */
.navbar-collapse.collapse.in {
display: block!important;
}
.collapsing {
overflow: hidden!important;
}

.navbar-static-top {
position: fixed;
top: 0;
left: 0;
width: 100%;
margin: 0;
}

这是我用来尝试在滚动超过 50 像素后将该 css 应用到桌面标题的快速代码:

$(document).ready(function(){
var $document = $(document);

$document.scroll(function() {
if ($document.scrollTop() >= 50) {
/*$('.navbar-header').css('float', 'none');
$('.navbar-toggle').css('display', 'block');
$('.navbar-collapse').css('border-top', '1px solid transparent');
$('.navbar-collapse').css('box-shadow', 'inset 0 1px 0 rgba(255,255,255,0.1)');
$('.navbar-collapse.collapse').css('display', 'none !important');
$('.navbar-nav').css('float', 'none !important');
$('.navbar-nav').css('margin', '7.5px -15px');
$('.navbar-nav>li').css('float', 'none');
$('.navbar-nav>li>a').css('padding-top', '10px');
$('.navbar-nav>li>a').css('padding-bottom', '10px');
$('.navbar-text').css('float', 'none');
$('.navbar-text').css('margin', '15px 0');
$('.navbar-collapse.collapse.in').css('display', 'block !important');
$('.collapsing').css('overflow', 'hidden!important');
$('.navbar-static-top').css('position', 'fixed');
$('.navbar-static-top').css('top', '0');
$('.navbar-static-top').css('left', '0');
$('.navbar-static-top').css('width', '100%');
$('.navbar-static-top').css('margin', '0');*/
} else {
}

});

});

最佳答案

我也在努力让汉堡包按钮显示在滚动条上。看起来你很接近,但你可以更轻松地执行以下操作。

在你的 main.js(在 common 中),添加一个关于滚动的类:

$(".navbar").on('affixed.bs.affix', function(){
$('.navbar').addClass('navbar-collapsed');
});

当导航回到顶部时删除类:

$(".navbar").on('affixed-top.bs.affix', function(){
$('.navbar').removeClass('navbar-collapsed');
});

然后为那个类添加你的sass:

.navbar-collapsed{
.navbar-header {
float: none;
}
.navbar-toggle {
display: block;
}
.navbar-collapse.collapse {
display: none!important;
}
.navbar-nav {
float: none!important;
margin: 7.5px -15px;
}
.navbar-nav>li {
float: none;
}
.navbar-nav>li>a {
padding-top: 10px;
padding-bottom: 10px;
}
.navbar-text {
float: none;
margin: 15px 0;
}
/* since 3.1.0 */
.navbar-collapse.collapse.in {
display: block!important;
}
.collapsing {
overflow: hidden!important;
}

.navbar-static-top {
position: fixed;
top: 0;
left: 0;
width: 100%;
margin: 0;
}
}

关于javascript - 使 Bootstrap 导航栏在滚动时折叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28815007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com