繁体   English   中英

响应式导航菜单打开时防止Jquery Window滚动

[英]Prevent Jquery Window scroll when responsive nav menu open

我正在尝试防止由于窗口滚动功能而使我的响应式导航菜单在打开时消失,请问如何在导航菜单打开时禁用该功能,因为我希望菜单保持固定而不消失,直到再次关闭菜单?

用于打开和打开导航栏的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);
       });
   });

这是我的汉堡包动画按钮的功能,负责打开和关闭响应式导航

 $(document).ready(function(){
    $('#hamburger').click(function(){
       $(this).toggleClass('open');
    });
 });

有问题的网站是http://testsiteclash.co.uk

谢谢

我认为您想要做的就是检查显示/隐藏.wrapper的功能

只保持菜单打开

if (currentTop < this.previousTop) {
    $(".wrapper").show();   
} else if (!$('#hamburger').hasClass('open')) {
    $(".wrapper").hide();    
}

停止窗口滚动

$(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;
});

暂无
暂无

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

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