滚动后固定辅助导航栏
Fixed secondary Nav bar after scrolling
我浏览了一些帖子,找到了大部分答案,但它仍然无法正常工作。
http://jsfiddle.net/5n5MA/619/
您在 jsfiddle 上看到的栏应该低于顶部,因为在我的主站点上有一个固定的 header,这个辅助栏应该低于它。我可以将其固定在 jsfiddle 上,但不能固定在我的网站上。正如您所看到的,当它变为固定时它正在缩小。
HTML:
<header>
<img class="logo" src="images/headerLogo.png">
<p class="about lighter">ABOUT US</p>
<p class="contact lighter">CONTACT US</p>
<img class="getStarted" src="images/getStarted.png">
</header>
<div class="mainSection1">
<h1>SAVE TIME & MONEY</h1>
<h2 class="lighter">CONCIERGE HAS ALL THE ANSWERS</h2>
<p>.99 VALUE<br>FREE FOR YOUR CLIENTS</p>
<img class="getStarted" src="images/getStarted.png">
</div>
<div class="subBar">
<p class="first">VALUE</p> <p class="second">SERVICES</p> <p class="third">BRANDS</p> <p class="fourth">HOW IT WORKS</p>
</div>
JS:
var nav = $('.subBar');
if (nav.length) {
var fixmeTop = nav.offset().top -100;
$(window).scroll(function () {
var currentScroll = $(window).scrollTop();
if (currentScroll >= fixmeTop) {
$('.subBar').css({
position: 'fixed',
width: '100%',
top: '73px',
left: '0'
});
$('header').css(
'box-shadow', 'inherit'
);
} else {
$('.subBar').css({
position: 'static'
});
$('header').css(
'box-shadow', '0px 5px 9px #515151'
);
}
});
}
css:
.subBar {
background: #F1F1F2;
height: 65px;
}
.subBar p:first-child {
margin-left: 15%;
border-left: 1px solid #bbbdc0;
}
.subBar p {
float: left;
border-right: 1px solid #bbbdc0;
width: 17%;
text-align: center;
height: 44px;
margin-top: 0px;
padding-top: 21px;
font-weight: lighter;
}
这是因为 div .subBar
没有给出 width.
因此,当它的位置固定时,它的宽度会缩小,默认为 auto。
所以指定一个固定宽度。它将在任何位置采用该宽度。
此外,您需要在左侧和右侧留出一些边距,以使其与您想要的保持一致。
您可以进行以下更改:
.subBar {
background: #F1F1F2;
height: 65px;
width:100%;
}
另一个更准确的解决方案:
jquery
中的变化
if (currentScroll >= fixmeTop) {
$('.subBar').css({
position: 'fixed',
top: '72px'
});
} else {
$('.subBar').css({
position: 'static',
width:'auto';
});
}
检查FIDDLE。
问题已解决!我决定制作第二个开始隐藏的导航栏,而不是当我向下滚动时显示的导航栏。它似乎不那么紧张,并且没有将原始栏从 dom 中取出(它与它下面的其他元素混淆)。
我浏览了一些帖子,找到了大部分答案,但它仍然无法正常工作。
http://jsfiddle.net/5n5MA/619/
您在 jsfiddle 上看到的栏应该低于顶部,因为在我的主站点上有一个固定的 header,这个辅助栏应该低于它。我可以将其固定在 jsfiddle 上,但不能固定在我的网站上。正如您所看到的,当它变为固定时它正在缩小。
HTML:
<header>
<img class="logo" src="images/headerLogo.png">
<p class="about lighter">ABOUT US</p>
<p class="contact lighter">CONTACT US</p>
<img class="getStarted" src="images/getStarted.png">
</header>
<div class="mainSection1">
<h1>SAVE TIME & MONEY</h1>
<h2 class="lighter">CONCIERGE HAS ALL THE ANSWERS</h2>
<p>.99 VALUE<br>FREE FOR YOUR CLIENTS</p>
<img class="getStarted" src="images/getStarted.png">
</div>
<div class="subBar">
<p class="first">VALUE</p> <p class="second">SERVICES</p> <p class="third">BRANDS</p> <p class="fourth">HOW IT WORKS</p>
</div>
JS:
var nav = $('.subBar');
if (nav.length) {
var fixmeTop = nav.offset().top -100;
$(window).scroll(function () {
var currentScroll = $(window).scrollTop();
if (currentScroll >= fixmeTop) {
$('.subBar').css({
position: 'fixed',
width: '100%',
top: '73px',
left: '0'
});
$('header').css(
'box-shadow', 'inherit'
);
} else {
$('.subBar').css({
position: 'static'
});
$('header').css(
'box-shadow', '0px 5px 9px #515151'
);
}
});
}
css:
.subBar {
background: #F1F1F2;
height: 65px;
}
.subBar p:first-child {
margin-left: 15%;
border-left: 1px solid #bbbdc0;
}
.subBar p {
float: left;
border-right: 1px solid #bbbdc0;
width: 17%;
text-align: center;
height: 44px;
margin-top: 0px;
padding-top: 21px;
font-weight: lighter;
}
这是因为 div .subBar
没有给出 width.
因此,当它的位置固定时,它的宽度会缩小,默认为 auto。
所以指定一个固定宽度。它将在任何位置采用该宽度。
此外,您需要在左侧和右侧留出一些边距,以使其与您想要的保持一致。
您可以进行以下更改:
.subBar {
background: #F1F1F2;
height: 65px;
width:100%;
}
另一个更准确的解决方案: jquery
中的变化if (currentScroll >= fixmeTop) {
$('.subBar').css({
position: 'fixed',
top: '72px'
});
} else {
$('.subBar').css({
position: 'static',
width:'auto';
});
}
检查FIDDLE。
问题已解决!我决定制作第二个开始隐藏的导航栏,而不是当我向下滚动时显示的导航栏。它似乎不那么紧张,并且没有将原始栏从 dom 中取出(它与它下面的其他元素混淆)。