简体   繁体   English

当向下滚动页面时固定元素保持在顶部时,内容在固定元素下消失

[英]Content disappears under fixed element when fixed element stays on top when scrolling down the page

I have a problem with some content, which disappears under the fixed element when page is being scrolled down. 我有一些内容的问题,当页面向下滚动时,它会在固定元素下消失。 The JS fiddle below shows it very well. 下面的JS小提琴很好地展示了它。 Basically the content above number 7 jumps behind the fixed navigation element. 基本上,7号以上的内容跳过固定导航元素。 I assume there must be a simple {padding-top:100px;} applied for body through js after sticking the header on top. 我假设在将标题放在顶部后,必须有一个简单的{padding-top:100px;}通过js应用于body。

JSfiddle here JS在这里

<div id="ontop">something</div>
<header>navigation - stays on top when scrolling</header>
<div id="wrapper"> 
    1<br/>2<br/>3<br/>4<br/>5<br/>6<br/>
    7 - wrapper disappears above this point while scrolling down<br/> 
    8<br/>9<br/>10<br/>
</div>

CSS: CSS:

#ontop {width:100%; height:80px; background-color:yellow;}
header {width:100%; height:100px; background-color:lightgrey;}
#wrapper {background-color:lightblue; height:5000px;}

.navfixed {position: fixed; top: 0px; z-index: 100; width:100%; display:block; margin-bottom:120px;} 

and finally JS: 最后JS:

$(function () {
    var elem = $('aside'),
        elemTop = elem.offset().top;
    $(window).scroll(function () {
        elem.toggleClass('fixed', $(window).scrollTop() > elemTop);
    }).scroll();
});

Thank you for your help 谢谢您的帮助

Need to set top margin to #wrapper element toggling wrapperBelow class on scroll 需要在滚动时将#wrapper元素的顶部边距设置为切换wrapperBelow

 $(function () { var elem = $('header'), wrapperElem = $('#wrapper'), elemTop = elem.offset().top; $(window).scroll(function () { elem.toggleClass('navfixed', $(window).scrollTop() > elemTop); wrapperElem.toggleClass('wrapperBelow', $(window).scrollTop() > elemTop); }).scroll(); }); 
 #ontop {width:100%; height:80px; background-color:yellow;} header {width:100%; height:100px; background-color:lightgrey;} #wrapper {background-color:lightblue; height:5000px;} .navfixed {position: fixed; top: 0px; z-index: 100; width:100%; display:block; margin-bottom:120px;} .wrapperBelow{ margin-top:112px; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="ontop">something</div> <header>navigation - stays on top when scrolling</header> <div id="wrapper"> 1<br/>2<br/>3<br/>4<br/>5<br/>6<br/> 7 - wrapper disappears before this while scrolling<br/> 8<br/>9<br/>10<br/> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM