使用Headroom JS来隐藏导航条,并在需要时显示
Using Headroom JS to hide navbar on scroll and appear when needed
我试图使用Headroom.js为我的导航栏,但我有一些困难让它的工作。
(Headroom JS应该隐藏标题&向下滚动时嵌套导航,但在需要时出现)
不确定我在哪里走错了,因为我仍然是一个初学者使用javascript,所以我很抱歉很简短。
我的HTML是这样设置的:
<!-- initially -->
<header class="headroom">
<!-- scrolling down -->
<header class="headroom headroom--unpinned">
<!-- scrolling up -->
<header class="headroom headroom--pinned">
<header id="header" class="header header--fixed hide-from-print" role="banner">
<nav>
</nav>
</header>
</header>
</header>
</header>
CSS:
.headroom {
transition: transform 200ms linear;}
.headroom--pinned {
transform: translateY(0%);}
.headroom--unpinned {
transform: translateY(-100%);}
header.headroom {position: fixed;top: 0;left: 0;right: 0;transition: all .2s ease-in-out; z- index: 9999;}
header.headroom--unpinned {top: -75px;z-index: 9999;}
header.headroom--pinned {top: 0; z-index: 9999;}
nav{
margin:0;
padding:0px;
text-align:center;
background-color: #ffffff;
border-bottom: 2px solid #d5dbdb;
width: 100%;
height: 60px;
position: fixed;
z-index: 9999;
clear: both;
top:0;
opacity: 0.9;}
JS -我已经链接了headroom.js文件和jQuery文件在我的HTML:
<script type="text/javascript" src="js/headroom.js"></script>
我还在我的页面底部添加了一些脚本:
<script>
(function() {
var header = document.querySelector("#header");
if(window.location.hash) {
header.classList.add("slide--up");
}
new Headroom(header, {
tolerance: {
down : 10,
up : 20
},
offset : 205,
classes: {
initial: "slide",
pinned: "slide--reset",
unpinned: "slide--up"
}
}).init();
}());
</script>
我不确定我到底做错了什么,任何评论或反馈将非常感激(Y)您可以在这里查看我尝试使用(并遵循)的源代码-http://wicky.nillia.ms/headroom.js/
不需要插件,这里有一个FIDDLE
<header class="default">
</header>
header {
background: #444;
position: fixed;
left: 0;
width: 100%;
height: 80px;
transition: all 0.3s linear;
-moz-transition: all 0.3s linear;
-webkit-transition: all 0.3s linear;
}
.default {
top: 0;
}
.fixed {
top: -80px;
}
<script>
(function($) {
var ost = 0;
$(window).scroll(function() {
var cOst = $(this).scrollTop();
if(cOst > 200 && cOst > ost) {
$('header').addClass('fixed').removeClass('default');
}
else {
$('header').addClass('default').removeClass('fixed');
}
ost = cOst;
});
})(jQuery);
</script>
*注:将脚本放在</body>
标签之前
相关文章:
- 隐藏/显示 js 代码不会在 IE8 或更低版本上运行
- 关闭网页时没有显示 Js 的工作时间
- Firebug不再显示JS错误
- 如何在标题标签上显示 JS 变量
- 为什么突出显示.js忽略了语言类
- 在某些情况下显示 JS 警报
- 带有文本显示js功能的图像映射 - 某些部分不显示
- 防止显示.js缩放
- 突出显示 pre 标记中的语法,并突出显示.js
- 更改滚动显示.js视口
- 如何使用 bower 构建依赖关系(例如突出显示.js)
- angularjs:不能显示 JS 'typeof' 的返回值
- 提交后显示 JS/Ajax 消息
- 突出显示.js在文本区域中
- 车把内脚本中的 HTML 在使用 ember 时不显示.js + 剑道 UI
- 使用 jQuery.AJAX 在 Div 中显示 JS 图表
- 在样式模式 (jQuery UI) 窗口中显示 JS 警报
- 突出显示.js在 AngularJS SPA 中不起作用
- Gulp uglify 失败并显示 js 解析错误
- 使用Sharepoint列表值时未显示JS警报