Javascript在滚动时显示/隐藏菜单
Javascript show/hide menu on scroll with a twist
这是菜单淡入的演示:
小提琴演示
我正在就我遇到的一个棘手的节目隐藏问题寻求一些建议。因此,我的菜单在某个时间点使用以下方法淡入:
$(window).scroll(function () {
var d = $('#menu');
if (d.offset().top > 810) {
d.fadeIn();
} else {
d.stop().hide();
}
});
但是,我需要做的是菜单中的链接之一不会被隐藏并显示在页面顶部,然后在菜单与其他链接一起出现时保留。
菜单将显示以下内容:
<div id="menu">
<div class="top-bar">
<div class="container">
<div>
<a href="index.php" class="top-bar-brand">MyWebsite</a>
</div>
<nav>
<ul class="navbar-right">
<li><a href="">Buy Now</a></li>
<li><a href="">Link2</a></li>
<li><a href="">Link2</a></li>
<li><a href="">Login</a></li>
</ul>
</nav>
</div>
</div>
</div>
#menu {
width : 100%;
height : auto;
overflow: auto;
position: fixed;
display : none;
background-color: rgba(255, 255, 255, 0.9);
z-index: 999999;
}
因此,名为"登录"的链接需要始终显示,但其他链接和菜单的背景颜色显示在滚动上,然后再次隐藏,但"登录"链接仍然存在。
我试过这个,看看这是否是你想要的JSfiddle 已更新
<div id="menu">
<div class="top-bar">
<div class="container">
<div>
<a href="index.php" class="top-bar-brand hideme">SchoolShare</a>
</div>
<nav>
<ul class="navbar-right">
<li class="hideme"><a href="">Buy Now</a></li>
<li class="hideme"><a href="">Parents</a></li>
<li class="hideme"><a href="">Schools</a></li>
<li><a href="">Login</a></li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div class="bodydiv">Scroll down</div>
JavaScript
$('.hideme').hide();
$(window).scroll(function () {
var d = $('#menu');
if (d.offset().top > 810) {
$('.hideme').fadeIn();
$('#menu').css({'background':'rgba(255,255,255,0.9)'});
} else {
$('.hideme').fadeOut();
$('#menu').css({'background':'rgba(255,255,255,0)'});
}
});
CSS
#menu {
width : 100%;
height : auto;
overflow: auto;
position: fixed;
z-index: 999999;
}
.top-bar{
width:100%;
overflow:auto;
height:auto;
padding: 10px 0;
}
.top-bar-brand{
float:left;
font-size:18px;
color: #2C3E50;
display: block;
-webkit-margin-before: 1em;
-webkit-margin-after: 1em;
-webkit-margin-start: 0px;
-webkit-margin-end: 0px;
-webkit-padding-start: 10px;
}
nav{
float:right;
height: 100%;
margin: 0;
padding: 4px 0 0 0;
}
.navbar-right{
}
.navbar-right ul{
padding: 0;
list-style:none;
}
.navbar-right li{
display:inline-block;
margin: 0 10px;
}
body{background-color: #ddd;}
.bodydiv{height: 2000px;}
.hideme {
display: none;
}
#menu {
-webkit-transition: background 500ms ease;
-moz-transition: background 500ms ease;
-o-transition: background 500ms ease;
transition: background 500ms ease;
}
JSFIDDLE DEMO
目录:
<div id="menu">
<div class="top-bar">
<div class="container">
<div>
<a href="index.php" class="top-bar-brand">SchoolShare</a>
</div>
<nav>
<ul class="navbar-right">
<li><a href="">Buy Now</a></li>
<li><a href="">Parents</a></li>
<li><a href="">Schools</a></li>
</ul>
</nav>
</div>
</div>
</div>
<a class="login" href="">Login</a>
<div class="bodydiv">Scroll down</div>
.css:
#menu {
width : 100%;
height : auto;
overflow: auto;
position: fixed;
display : none;
background-color: rgba(255, 255, 255, 0.9);
z-index: 999998;
}
.login{
position: fixed;
right: 0;
z-index: 999998;
top: 38px
}
.top-bar{
width:100%;
overflow:auto;
height:auto;
padding: 10px 0;
}
.top-bar-brand{
float:left;
font-size:18px;
color: #2C3E50;
display: block;
-webkit-margin-before: 1em;
-webkit-margin-after: 1em;
-webkit-margin-start: 0px;
-webkit-margin-end: 0px;
-webkit-padding-start: 10px;
}
nav{
float:right;
height: 100%;
margin: 0;
padding: 4px 65px 0 0;
}
.navbar-right{
}
.navbar-right ul{
padding: 0;
list-style:none;
}
.navbar-right li{
display:inline-block;
margin: 0 10px;
}
body{background-color: #ddd;}
.bodydiv{height: 2000px;}
Javascript未编辑。
相关文章:
- JQuery上下文菜单显示/隐藏问题
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 向下滚动时隐藏菜单,向上滚动时显示,适用于Chrome,不适用于Safari(手机)
- 如何使用jQuery显示/隐藏菜单
- 一系列下拉菜单,由jQuery提供支持,隐藏和显示,但不在Chrome中
- 使用 jQuery 显示和隐藏菜单
- 如何隐藏和显示子菜单
- JavaScript:隐藏和显示菜单类
- 使用 jQuery 显示/隐藏菜单
- 如何使用 JavaScript 隐藏和显示菜单
- 在鼠标悬停时显示/隐藏菜单
- 基于滚动的Jquery显示/隐藏菜单
- 使用 JavaScript 隐藏和显示菜单 ID
- Jquery动态隐藏和显示下拉菜单
- 如何使用隐藏菜单项直到单击的 javascript 显示第一个菜单项内容
- 切换隐藏菜单按钮的显示/隐藏(响应式)
- 从侧边菜单中隐藏和显示元素
- Javascript在滚动时显示/隐藏菜单
- 使用导航菜单显示隐藏html代码/内容
- 使用2个选择菜单显示/隐藏问题