繁体   English   中英

滚动时粘性导航栏闪烁

[英]Sticky navbar flickering on scroll

我有一个粘性导航栏,上面的文字应该在滚动时消失。 如果该文本的内容超过几行,导航栏将闪烁。 我认为这与文档高度发生显着变化的元素有关,但我不确定如何修复它。

我已将它从 display: none 切换到visibility: hidden,如前一个线程中所建议的那样。 它从在所有内容上闪烁变为只有更长的段落。 我还尝试为效果添加延迟,但我似乎无法响应文档高度变化的实际问题,因此滚动位置发生了变化,这可能会导致闪烁效果。

 var $win = $(window) var $doc = $(document) $win.scroll(function(e) { scrollEffects(); }); function scrollEffects() { var limit = 85; var scrolled = $win.scrollTop(); if ($doc.scrollTop() >= limit) { $(".intro").addClass('inactive'); //$('#banner-contents').css('opacity', 1 - (scrolled * .00280)); // console.log('scrolled'); } else { $(".intro").removeClass('inactive'); } }
 body { height: 1500px; background: tomato; } .nav { background: white; position: sticky; top: 0px; } .intro { color: $black; font-size: 1.7rem; text-align: center; max-height: 7rem; transition: max-height 0.4s ease; } .inactive { max-height: 0; overflow: hidden; transition: max-height 0.1s ease; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="nav"> <p class="intro"> This is some text that should disappear without flickering <br> This is some text that should disappear without flickering <br> This is some text that should <strong>disappear</strong> without flickering <br> This is some text that should disappear without flickering <br> This is some text that should disappear without flickering <br> </p> Other text Other text Other text Other text </div> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent dapibus finibus lorem, sed pulvinar est vestibulum et. Nunc semper ligula eget urna imperdiet ullamcorper. Etiam tristique consectetur ornare. Vestibulum ipsum mi, ultrices vitae tincidunt non, ornare sit amet dolor. Maecenas convallis sollicitudin nibh, in laoreet leo tristique eget. Donec vitae auctor risus. Integer mattis nibh ipsum, nec porttitor ligula commodo ac. Etiam pharetra elit sit amet magna hendrerit scelerisque. Nam vel imperdiet metus. Vestibulum lectus enim, tempus sed orci ut, fermentum consectetur nisl. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec ut eros ex. Quisque lacinia viverra mauris sit amet convallis. Phasellus in neque risus. Quisque rutrum lacinia erat in cursus. Praesent imperdiet et est vitae tincidunt. Nulla leo massa, tempor consequat tincidunt aliquet, blandit id libero. Nullam condimentum dapibus dictum. Sed vel magna dignissim, maximus augue non, laoreet ante. Ut urna velit, porta vel mauris sit amet, suscipit efficitur nisi. Integer cursus bibendum tortor sit amet tempor. Proin eget turpis ipsum. Maecenas et quam ornare, imperdiet turpis mattis, fermentum diam. Mauris blandit fringilla euismod. Fusce in nunc est. Morbi fringilla pulvinar massa, pulvinar auctor ex eleifend ut. Integer eros lorem, viverra et tincidunt nec, aliquet at erat. Morbi sed dapibus eros. Nunc tristique ullamcorper porttitor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed malesuada nunc tincidunt, faucibus purus eu, ultrices velit. Fusce non velit diam. Praesent ac vulputate libero, et dignissim justo. Mauris at felis efficitur dolor tincidunt hendrerit id at lacus. Curabitur sit amet elit arcu. Donec a elit felis. Aliquam laoreet placerat velit, sed molestie nisl congue vitae. Ut aliquet aliquam tincidunt. In ultricies suscipit efficitur. Sed ultrices ligula dui, non sodales massa pulvinar in. Nulla accumsan risus quam, sit amet mattis orci facilisis eget. Curabitur tempor porttitor nibh ac ultrices. Integer scelerisque, elit at auctor consectetur, leo enim pellentesque sem, et tristique nisl sem in magna. Aliquam vel egestas sapien. Fusce blandit lectus vitae molestie egestas. Aliquam varius, risus et viverra dapibus, urna tellus condimentum nisi, eget vehicula sapien risus eu neque. Praesent at tristique massa, at cursus nibh. Aliquam erat volutpat. Etiam cursus consequat bibendum. Sed suscipit ac dui vitae fermentum. </p>

你只需在 .class(.nav) 上用这个 css 替换你的 css 我就会被修复

.nav {
  background: white;
  position: fixed;
  top: 0px;
  left:0;
  right:0;
}

暂无
暂无

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

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