繁体   English   中英

jQuery窗口滚动关闭后重新打开

[英]jQuery window scroll turn back on after off

我有一个脚本,当您滚动到某个点时,该菜单会更改菜单的外观,以使其停止播放,从而一遍又一遍地重复我的动画,我已经在$(window).off("scroll");了脚本$(window).off("scroll"); 因此它只执行一次。 当我再次滚动回同一点时,我需要再次更改菜单,但是一旦关闭滚动,是否有办法在某个点将其重新打开?

这是我到目前为止的内容:

    var Header = $('#header');
    var Navbar = $('.navbar');
    var links = $(".navbar ul.nav > li > a");
    var HeaderH = Header.height();
    var NavbarH = Navbar.height();


$(window).on("scroll", function(){      
    if ($(this).scrollTop() === (HeaderH + 64)) {
        $(window).off("scroll");
        Navbar.addClass('navbar-fixed-top')
        links.css('padding', '10px 20px 10px 20px');
        Header.css('margin-bottom', '64px');
        $('.navbar-fixed-top').css('top', '-64px')
        $('.navbar-fixed-top').animate({'top' : '0'}, 1000);    
    }
});

只需切换一个自定义类:

var Header = $('#header');
var Navbar = $('.navbar');
var links = $(".navbar ul.nav > li > a");
var HeaderH = Header.height();
var NavbarH = Navbar.height();

$(window).on("scroll", function(){      
    if ($(this).scrollTop() >= (HeaderH + 64)) {
        if (!Navbar.hasClass('myclass')) {
            Navbar.addClass('navbar-fixed-top myclass')
            $('.navbar-fixed-top').stop().animate({'top' : '0'}, 1000);
        }
    } else {
        Navbar.removeClass('navbar-fixed-top myclass');
    }
});

和CSS:

.myclass {
    padding: 10px 20px;
    margin-bottom: 64px;
    top: -64px;
}

暂无
暂无

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

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