У меня есть липкая панель навигации с текстом, который должен исчезнуть при прокрутке. Если содержание этого текста превышает пару строк, навигационная панель будет мерцать. Я думаю, что это связано со значительным изменением высоты документа в элементе, но я не уверен, как это исправить.
Я переключил его с дисплея: нет на видимость: скрыто, как предлагалось в предыдущей теме. Он перешел от мерцания всего контента к более длинным абзацам. Я также попытался добавить задержку к эффекту, но не могу ответить на реальную проблему изменения высоты документа, и, таким образом, изменилась позиция прокрутки, которая, вероятно, вызывает эффект мерцания.
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>