用户向下滚动时扩展和更改导航栏
Extending and changing the navbar when the user scrolls down
我目前正在一个项目网站上工作,是一个 one-page 网站,我是 Bootstrap 3 的新人,所以我仍在使用一些 start-up模板。我现在遇到的问题是我不知道如何放置客户想要的有效但复杂的汉堡包菜单:
- 当用户在主页或 header/carousel 时,单独的汉堡菜单应该位于屏幕右上角的透明导航背景上(而不是在边缘)。
- header 中的这个 header 汉堡包菜单应该会隐藏,或者当您向下滚动一点时固定在上方。
- 当您在 header 之后向下滚动时,应该出现预期的黑色导航栏,固定在顶部,它应该更早地扩展小导航栏,然后变成带有汉堡菜单的全屏 100% 宽度栏右边是公司标志,左边是公司标志。
- 单击汉堡菜单时,屏幕右侧应出现一个导航框。
这是我的 HTML:
<a id="menu-toggle" href="#" class="btn btn-primary btn-lg toggle"><i class="fa fa-bars"></i></a>
<div id="sidebar-wrapper">
<ul class="sidebar-nav">
<a id="menu-close" href="#" class="btn btn-default btn-lg pull-right toggle"><i class="fa fa-times"></i></a>
<li class="sidebar-brand">Navigation</a></li>
<li><a href="#top">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#services">Works</a></li>
<li><a href="#portfolio">People</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</div>
我目前正在使用 Bootstrap 3 标准模板,因为我想在迁移到 4 之前了解更多信息。这是我的 CSS:
.btn {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: normal;
line-height: 1.428571429;
text-align: center;
white-space: nowrap;
vertical-align: middle;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
.btn-primary {
color: #fff;
background-color: #428bca;
border-color: #357ebd;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
color: #fff;
background-color: #3276b1;
border-color: #285e8e;
}
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
background-color: #428bca;
border-color: #357ebd;
}
.btn-primary .badge {
color: #428bca;
background-color: #fff;
}
这就是我现在为菜单所做的全部工作。我本来想为这些东西创建新的 类,这样我就不会依赖 Bootstrap 模板,我可以尽快编辑它而不会搞砸。
我想你需要的是一个带有滚动效果的侧边栏。您将不得不使用一些 javaScript 来实现这一点。我不知道具体是如何完成的细节,但我可以为您提供一些资源,帮助您实现这一目标。
- 制作一个带有汉堡菜单的透明导航栏。 (代码如下)
.navcolor{
background-color:rgba(0,0,0,0);
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<body>
<nav class="navbar navbar-light navcolor mb-3">
<div class="container">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" data-toggle="collapse" data-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Works</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">People</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
</body>
创建边栏。关注此博客 post 以实现这一目标
https://bootstrapious.com/p/bootstrap-sidebar
添加滚动效果。在 codepen 上查看此代码。
https://codepen.io/sonorangirl/pen/XmRBjq
我相信您可以结合上述所有步骤来实现您想要的。祝一切顺利!
我目前正在一个项目网站上工作,是一个 one-page 网站,我是 Bootstrap 3 的新人,所以我仍在使用一些 start-up模板。我现在遇到的问题是我不知道如何放置客户想要的有效但复杂的汉堡包菜单:
- 当用户在主页或 header/carousel 时,单独的汉堡菜单应该位于屏幕右上角的透明导航背景上(而不是在边缘)。
- header 中的这个 header 汉堡包菜单应该会隐藏,或者当您向下滚动一点时固定在上方。
- 当您在 header 之后向下滚动时,应该出现预期的黑色导航栏,固定在顶部,它应该更早地扩展小导航栏,然后变成带有汉堡菜单的全屏 100% 宽度栏右边是公司标志,左边是公司标志。
- 单击汉堡菜单时,屏幕右侧应出现一个导航框。
这是我的 HTML:
<a id="menu-toggle" href="#" class="btn btn-primary btn-lg toggle"><i class="fa fa-bars"></i></a>
<div id="sidebar-wrapper">
<ul class="sidebar-nav">
<a id="menu-close" href="#" class="btn btn-default btn-lg pull-right toggle"><i class="fa fa-times"></i></a>
<li class="sidebar-brand">Navigation</a></li>
<li><a href="#top">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#services">Works</a></li>
<li><a href="#portfolio">People</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</div>
我目前正在使用 Bootstrap 3 标准模板,因为我想在迁移到 4 之前了解更多信息。这是我的 CSS:
.btn {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: normal;
line-height: 1.428571429;
text-align: center;
white-space: nowrap;
vertical-align: middle;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
.btn-primary {
color: #fff;
background-color: #428bca;
border-color: #357ebd;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
color: #fff;
background-color: #3276b1;
border-color: #285e8e;
}
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
background-color: #428bca;
border-color: #357ebd;
}
.btn-primary .badge {
color: #428bca;
background-color: #fff;
}
这就是我现在为菜单所做的全部工作。我本来想为这些东西创建新的 类,这样我就不会依赖 Bootstrap 模板,我可以尽快编辑它而不会搞砸。
我想你需要的是一个带有滚动效果的侧边栏。您将不得不使用一些 javaScript 来实现这一点。我不知道具体是如何完成的细节,但我可以为您提供一些资源,帮助您实现这一目标。
- 制作一个带有汉堡菜单的透明导航栏。 (代码如下)
.navcolor{
background-color:rgba(0,0,0,0);
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<body>
<nav class="navbar navbar-light navcolor mb-3">
<div class="container">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" data-toggle="collapse" data-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Works</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">People</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
</body>
创建边栏。关注此博客 post 以实现这一目标 https://bootstrapious.com/p/bootstrap-sidebar
添加滚动效果。在 codepen 上查看此代码。 https://codepen.io/sonorangirl/pen/XmRBjq
我相信您可以结合上述所有步骤来实现您想要的。祝一切顺利!