【发布时间】:2020-04-09 04:14:01
【问题描述】:
当用户向上/向下滚动时隐藏/显示导航栏
这是我想要实现的示例: http://haraldurthorleifsson.com/ 或者 http://www.teehanlax.com/story/readability/
当您向下滚动时,导航栏会向上滑出屏幕,而当您向上滚动时,导航栏会滑回屏幕。我已经想出了如何使用淡入/淡出来做到这一点,但我想用与示例中完全相同的动画来实现它。 注意:我已经尝试过 SlideIn() 并且喜欢它执行拉伸动画的方式...
JQUERY:
var previousScroll = 0,
headerOrgOffset = $('#header').offset().top;
$('#header-wrap').height($('#header').height());
$(window).scroll(function() {
var currentScroll = $(this).scrollTop();
console.log(currentScroll + " and " + previousScroll + " and " + headerOrgOffset);
if(currentScroll > headerOrgOffset) {
if (currentScroll > previousScroll) {
$('#header').fadeOut();
} else {
$('#header').fadeIn();
$('#header').addClass('fixed');
}
} else {
$('#header').removeClass('fixed');
}
previousScroll = currentScroll;
});
CSS:
#header {
width: 100%;
z-index: 100;
}
.fixed {
position: fixed;
top: 0;
}
#header-wrap {
position: relative;
}
HTML:
<div id="header-wrap">
<div id="header" class="clear">
<nav>
<h1>Prototype</h1>
</nav>
</div>
</div>
【问题讨论】:
-
我遇到了同样的问题,也许我的问题对你有帮助。 [固定头 JQuery][1][1]:stackoverflow.com/questions/17532872/…
-
我写了一个小部件来解决这个确切的问题。完全可定制,从显示/隐藏之前的容差(例如,必须滚动 > 5px)到触发之前的偏移量(例如,必须从顶部 > 200px)。你可能想看看wicky.nillia.ms/headroom.js
标签: javascript jquery css html