在向上和向下滚动时,使.removeClass()和.addClass()平滑过渡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在向上和向下滚动时,使.removeClass()和.addClass()平滑过渡相关的知识,希望对你有一定的参考价值。

我试图在display:none和display:block之间进行转换。具有id#octopus-head的div应该在向下滚动时淡出,在向上滚动时返回,但是现在它只是立即弹出或弹出。

这是我正在使用的javascript

//sticky header scripts

// Hide Header on on scroll down
var didScroll;
var lastScrollTop = 0;
var delta = 5;
var navbarHeight = jQuery('.scroll-height-setter').innerHeight();

jQuery(window).scroll(function(event){
    didScroll = true;
});

setInterval(function() {
    if (didScroll) {
        hasScrolled();
        didScroll = false;
    }
}, 100);

function hasScrolled() {
    var st = jQuery(this).scrollTop();

    // Make sure they scroll more than delta
    if(Math.abs(lastScrollTop - st) <= delta)
        return;

    // If they scrolled down and are past the navbar, add class .nav-up.
    // This is necessary so you never see what is "behind" the navbar.
    if (st > lastScrollTop && st > navbarHeight){
        // Scroll Down
        jQuery('#octopus-head').removeClass('nav-down').addClass('nav-up').fadeOut(1000);
    } else {
        // Scroll Up
        if(st + jQuery(window).height() < jQuery(document).height()) {
            jQuery('#octopus-head').removeClass('nav-up').addClass('nav-down').fadeIn(1000);
        }
    }

    lastScrollTop = st;
}
答案

显示无法使用转换,因为没有任何内容可以转换。

您可以使用setTimeout()添加一个过渡类,该过渡类呈现不透明度为零的div,然后将类切换为最终不透明度100%。

或者你可以总是使用不透明度,永远不会显示div。这取决于你真正需要什么。

以上是关于在向上和向下滚动时,使.removeClass()和.addClass()平滑过渡的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 在向上滚动和向下滚动时添加不同的 CSS 动画

向上滚动和向下滚动时导航按钮的颜色变化

单击按钮时如何使HTML页面一直向上滚动? [复制]

单击按钮时如何使HTML页面一直向上滚动? [复制]

如何在快速向上或向下滚动时退出键盘? [关闭]

React - 向下滚动时向上滑动固定导航栏,向上滚动时向下滑动