当用户滚过标题(100vh)中的徽标时,会出现固定的导航栏。 (此切换发生的时间点为220px scrolltop。)使用javaScript的.visibility: hidden/visible
,这可以在jsfiddle
然而,在本地主机上,它可以工作,但是一旦导航栏出现在220px,标题的其余部分(100vh 减去 200px)在导航栏下方显示为白色(仅隐藏图像)。问题是什么?
localhost上的代码与小提琴中的代码完全相同。没有控制台错误。
还要添加我没有使用jquery,因为尽管使用jQuery.noConflict();
它会导致与使用jquery的其他项冲突。
答案 0 :(得分:1)
这就是element.visibility=visible|hidden;
所做的。它使对象不可见但保留空间。
与element.display=block|none;
不同,隐藏元素并删除空格。
我使用display:none/block
更改了您的示例:https://jsfiddle.net/qz7531bu/62
而且nav
的问题也消失了,因为它在header
内。把它移出它应该没问题:
https://jsfiddle.net/qz7531bu/63
答案 1 :(得分:0)
你可以在javascript中添加如下内容 的document.getElementById( 'ID')的style.display = '无';
希望这有帮助。
答案 2 :(得分:0)
如果您使用的是jQuery,则无需编写核心JavaScript的长代码。
$('#navig').hide();
$(window).scroll(function() {
if ($(this).scrollTop() > 10) {
$('#arr_downpoint').hide();
}
else {
$('#arr_downpoint').show();
$('#header').show();
$('#navig').hide();
if ($(this).scrollTop() > 220) {
$('#header').hide();
$('#navig').show();
}
}
});