gpt4 book ai didi

javascript - 如何根据滚动位置淡入淡出导航栏

转载 作者:行者123 更新时间:2023-11-28 03:21:47 24 4
gpt4 key购买 nike

我有一个垂直导航栏,我想在用户滚动到标题下方时显示并慢慢淡入。同样,如果用户滚动到标题上,我希望导航栏消失并慢慢淡出。这是我当前的功能:

    $(window).scroll(function() {
var scrollPos = $(window).scrollTop();
if (scrollPos < 650) {
$('.navbar').fadeOut(4000);
} else {
$('.navbar').fadeIn(4000);
}
});

问题是,当我滚动到标题下方(或特别是 650 的位置)时,导航栏会快速出现完全不透明,慢慢淡出,然后慢慢淡入。当我滚动到标题上时,它很快就消失了。如何解决此问题以获得所需的行为?

最佳答案

将其更改为使用 css transition,还为滚动事件添加了轻微的反跳。从@Adriani6 的 fiddle 中取出标记,:P

(function(){
var timeout;
var $window = $(window);
var $navbar = $('.navbar');

$window.on('scroll', function(e){
clearTimeout(timeout);

timeout = setTimeout(function(){
if ($window.scrollTop() < 650) {
$navbar.removeClass('hide');
} else {
$navbar.addClass('hide');
}
}, 100);
});
}());
body{
height: 12000px;
}
.navbar{
height: 100px;
width: 800px;
background-color: green;
position: fixed;

transition: opacity 4s;
opacity: 1;
}

.navbar.hide {
opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='navbar'></div>

关于javascript - 如何根据滚动位置淡入淡出导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45177905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com