Javascript 当响应导航菜单打开时防止Jquery窗口滚动

Javascript 当响应导航菜单打开时防止Jquery窗口滚动,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我正试图防止我的响应导航菜单在打开时因窗口滚动功能而消失,我如何在导航菜单打开时禁用该功能,因为我希望菜单保持固定且在菜单再次关闭前不会消失 用于窗口和打开导航的Javascript $(window).scroll( { previousTop: 0 }, function () { var currentTop = $(window).scrollTop(); if (currentTop < this.previous

我正试图防止我的响应导航菜单在打开时因窗口滚动功能而消失,我如何在导航菜单打开时禁用该功能,因为我希望菜单保持固定且在菜单再次关闭前不会消失

用于窗口和打开导航的Javascript

    $(window).scroll(
    {
        previousTop: 0
    }, 
    function () {
    var currentTop = $(window).scrollTop();
    if (currentTop < this.previousTop) {
        $(".wrapper").show();   
    } else {
        $(".wrapper").hide();    
    }
    this.previousTop = currentTop;
});

    $(document).ready(function() {
       $('#hamburger').click(function() {
           var clicks = $(this).data('clicks');
           if (clicks) {
           $('.responsive-nav').toggleClass('responsive-nav-view');
           }
           else {
           $('.responsive-nav').toggleClass('responsive-nav-view');
           }
           $(this).data("clicks", !clicks);
       });
   });
有问题的地点是


谢谢

我想你要做的是在显示/隐藏
.wrapper

只需打开菜单即可

if (currentTop < this.previousTop) {
    $(".wrapper").show();   
} else if (!$('#hamburger').hasClass('open')) {
    $(".wrapper").hide();    
}
if(currentTop
停止窗口滚动

$(window).scroll({previousTop: 0}, function (e) {
    if ($('#hamburger').hasClass('open')){
        e.preventDefault();
        e.stopPropagation();
        return false;
    }
    var currentTop = $(window).scrollTop();
    if (currentTop < this.previousTop) {
        $(".wrapper").show();   
    } else {
        $(".wrapper").hide();    
    }
    this.previousTop = currentTop;
});
$(窗口)。滚动({previousTop:0},函数(e){
if($('#汉堡包').hasClass('open')){
e、 预防默认值();
e、 停止传播();
返回false;
}
var currentTop=$(窗口).scrollTop();
if(currentTop
谢谢,这只会在菜单打开时禁用它吗?非常感谢,非常有用,如何停止在该事件上滚动正文?@PaulStephenDavis编辑了答案底部部分应防止在正文上滚动。我应该澄清,使用preventDefault和StopperPropagation防止正常的浏览器行为应谨慎使用。再次感谢您说的“谨慎使用”?这是我唯一想阻止这种情况发生的地方是菜单打开时?
$(window).scroll({previousTop: 0}, function (e) {
    if ($('#hamburger').hasClass('open')){
        e.preventDefault();
        e.stopPropagation();
        return false;
    }
    var currentTop = $(window).scrollTop();
    if (currentTop < this.previousTop) {
        $(".wrapper").show();   
    } else {
        $(".wrapper").hide();    
    }
    this.previousTop = currentTop;
});