我怎样才能使我的头淡出/消失在向下滚动和重新出现在向上滚动
How can I make my header fade out/disappear on scroll down and reappear on scroll up?
我已经四处寻找了很多,偶然发现了一些教程,到目前为止,我还没有取得多少成就。我想做的是让我的网站的顶部标题消失时,用户向下滚动和重新出现时,他们滚动到页面的顶部。
我的代码到目前为止:
<header class="top-nav">
<div class="top-nav">
<!-- Top Row -->
<div class="top">
<div class="container">
<div class="row vh-center">
<div class="col-md-5 slogan">
Plumbing and Remodelling Services.
</div>
<div class="col-md-2">
<a href="index.html">
<img src="img/logo.png" alt="logo" class="logo">
</a>
</div>
<div class="col-md-5 top-social right">
<div class="social-3 right">
<a href="index.html#"><i class="icon-facebook"></i></a>
<a href="index.html#"><i class="icon-dribbble"></i></a>
<a href="index.html#"><i class="icon-twitter"></i></a>
<a href="index.html#"><i class="icon-tumblr"></i></a>
</div>
</div>
</div>
</div>
</div>
<!-- Top Row End -->
<script type="text/javascript">
var didScroll;
var lastScrollTop = 0;
var delta = 5;
var navbarHeight = $('header').outerHeight();
$(window).scroll(function(event){
didScroll = true;
});
setInterval(function() {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 250);
function hasScrolled() {
var st = $(this).scrollTop();
if(Math.abs(lastScrollTop - st) <= delta)
return;
if (st > lastScrollTop && st > navbarHeight){
$('header').removeClass('top-nav').addClass('nav-up');
} else {
if(st + $(window).height() < $(document).height()) {
$('header').removeClass('nav-up').addClass('top-nav');
}
}
lastScrollTop = st;
}
</script>
</div>
</header>
<header id="home">
<!-- Navigation -->
<div class="navigation">
<div class="container">
<div class="row vh-center">
<ul class="nav" id="nav">
<li>
<!-- Menu Link -->
<a href="index.html#home" title="About">
<span>About</span>
</a>
<!-- Menu Link End -->
</li>
<li>
<a href="http://www.terrylove.com/forums/index.php" title="Forums" target='_blank'>
<span>Forums</span>
</a>
</li>
<li>
<a href="index.html#event" title="Something">
<span>Renovations?</span>
</a>
</li>
<li>
<a href="index.html#portfolio" title="Something">
<span>Plumbing?</span>
</a>
</li>
<li>
<a href="index.html#team" title="Something">
<span>Stories?</span>
</a>
</li>
<li>
<a href="index.html#blog" title="Something">
<span>Pricing</span>
</a>
</li>
<li>
<a href="index.html#contact" title="Contact">
<span>Contact</span>
</a>
</li>
</ul>
<select class="select-menu"></select> <!-- select menu for small screens -->
</div>
</div>
</div>
<!-- Navigation End -->
</header>
CSS:
header {
margin:0px auto;
text-align:center;
position:fixed;
width: 100%;
top:0;
z-index:999;
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
float:left;
background: #34373d;
transition: top 0.2s ease-in-out;
}
.nav-up {
top: -40px;
}
当我向下滚动时,两个头都是固定的,不做我所说的(当然我没有告诉第二个头做任何事情,一旦我让第一个头起作用,我会实现它)
谁能告诉我我做错了什么,我该如何解决这个问题?
检查是否有帮助
jQueryvar lastScrollTop = 0;
$(window).scroll(function () {
var st = $(this).scrollTop();
if (st < lastScrollTop){
$('.navbar ').fadeIn();
} else {
$('.navbar ').fadeOut();
}
lastScrollTop = st;
})
我总是使用jQuery的scrollTop来完成这些动作。
$(window).scroll(function(event){
toggleHeader();
});
function toggleHeader() {
$('header').toggle( $(window).scrollTop() < 50 );
}
我最近回答了一个非常类似的问题。经过一些修改后,它应该符合您的需求:点击
直接链接到JSFiddle: http://jsfiddle.net/silveraven/WgL9z/10/
Code just to put jsfiddle link...
相关文章:
- 将菜单项与滚动绑定时出现Jquery错误
- IE上的新XMLHttpRequest()出现JS Ajax未指定错误
- 在新路由器上使用订阅函数时出现Angular 2 typescript错误(rc 1)
- 使一个新元素在某个时间出现
- 导致出现新内容块的标记(谷歌地图)
- 显示比容器宽的文本,滚动时出现问题
- 在Firefox OS应用程序中滚动时出现渲染问题
- 如何使滚动条出现
- 在 phonegap -2.9.0 中滚动期间出现白屏
- 使用Windows.load功能时IE滚动条出现问题
- 使元素在滚动后出现
- Stellar.js向上滚动时出现故障
- Div应该在用户向下滚动并再次向上滚动时出现,但不是在加载时
- 无论如何,如果绝对位置元素位于屏幕下方,则使正文滚动条出现
- 使用胡子模板实现无休止滚动时出现DOM异常8错误;jquery砌石
- 防止在不影响文本输入的情况下,空格键在向下滚动时出现默认情况
- 没有滚动条出现,当我通过浏览器运行我的网站,我的滑出菜单位置设置为固定
- 当某个部分显示在滚动条上时,滚动条出现错误
- 导航栏在滚动中出现和消失
- 为什么当滚动条出现或消失时,调整大小事件不会触发