Jquery 粘性菜单div doensn';被卡住时不要保持居中
我在Jquery 粘性菜单div doensn';被卡住时不要保持居中,jquery,css,Jquery,Css,我在中有一个菜单栏,当向下滚动时,它应该会粘在浏览器的顶部 这可以通过使用JQuery实现 var stickyHeaderTop = $('#stickyheader').offset().top; $(window).scroll(function() { if( $(window).scrollTop() > stickyHeaderTop ) { $('#stickyheader').css({position: 'fixed', top: '0px'});
中有一个菜单栏,当向下滚动时,它应该会粘在浏览器的顶部
这可以通过使用JQuery实现
var stickyHeaderTop = $('#stickyheader').offset().top;
$(window).scroll(function()
{
if( $(window).scrollTop() > stickyHeaderTop ) {
$('#stickyheader').css({position: 'fixed', top: '0px'});
$('#stickyalias').css('display', 'block')
}
else {
$('#stickyheader').css({position: 'static', top: '0px'});
$('#stickyalias').css('display', 'none');
}
});
但是,
使用CSS居中:右边距:auto;左边距:自动当菜单卡住时,代码>会以某种方式中断吗
请参见发生这种情况是因为您正在设置位置fixed
和top:0
(默认情况下还添加了left:0
)。添加<代码>左侧:50%;左边距:-100px
,它会工作的
您可以使用带有正坐标和负边距的方法。 更新:在向下滚动时恢复边距 这些元素通常用于将绝对元素居中
var stickyHeaderTop = $('#stickyheader').offset().top;
$(window).scroll(function()
{
if( $(window).scrollTop() > stickyHeaderTop )
{
$('#stickyheader').css({position: 'fixed', top: '0px', margin: '0 -100px',left:'50%'});
$('#stickyalias').css('display', 'block');
// also set content top padding under menu
}
else
{
$('#stickyheader').css({position: 'static', top: '0px', margin: '0 auto'});
$('#stickyalias').css('display', 'none');
}
});
另一种方法。
固定容器也可以用作包装器,并在需要时显示滚动条。然后,将该条放入常规容器中,并可使用margin:auto居中代码>
我强烈建议您使用类,因为类将使代码更清晰,您可以更快地进行自定义
HTML
CSS
这是因为它有位置:fixed
。你需要学习CSS来理解它是如何工作的。告诉你如何修复它很容易,但我猜你需要先学习基础知识,否则你会在5分钟后被更多的东西困住。谢谢,解决了它。我不知道left:0添加了top:0。没问题。这是定位元素的默认设置。你只能添加position:fixed
,它会粘在左上角。hi,你的小提琴,如果你向下滚动,它的外观与我之前的一样,固定在这里恢复边距:(是的,我写得有点慢:))JSFIDLE只是一个测试,使用200px的宽度。在实际的网站上,菜单栏的宽度达到1600px,然后菜单栏居中。在iPad上,上面的代码(更正为左边距:-800px)不起作用。但是,以下css$('#stickyheader').css({position:'fixed',top:'0px',right:'0',left:'0'})代码>在所有浏览器/宽度中都能响应。
<div id="stickyheader">
<div class="bar">BAR</div>
</div>
<div id="stickyalias" class="hidden"></div>
if( $(window).scrollTop() > stickyHeaderTop )
{
$('#stickyheader').addClass('fixed');
$('#stickyalias').removeClass('hidden');
}
else
{
$('#stickyheader').removeClass('fixed');
$('#stickyalias').addClass('hidden');
}
#stickyheader {
width: 100%;
}
#stickyheader.fixed {
position: fixed;
top: 0;
left: 8px;/*body margin*/
width: calc(100% - 16px);
}
#stickyalias {
display: block;
height: 60px;
}
#stickyalias.hidden {
display: none;
}