【问题标题】:Prevent Jquery Window scroll when responsive nav menu open响应式导航菜单打开时防止 Jquery Window 滚动
【发布时间】:2017-03-07 13:08:53
【问题描述】:

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

窗口和打开导航的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

谢谢

【问题讨论】:

    标签: javascript jquery wordpress


    【解决方案1】:

    我认为你想要做的是检查显示/隐藏.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;
    });
    

    【讨论】:

    • 谢谢,这只会在菜单打开时禁用它吗?
    • 非常感谢,工作很愉快,我如何停止在这个事件中滚动身体?
    • @PaulStephenDavis 编辑了答案,底部应防止在正文上滚动。
    • 我应该澄清一下,应该谨慎使用使用 preventDefault 和 stopPropagation 来防止正常浏览器行为。
    • 再次感谢,当说谨慎使用时?这是我想防止这种情况发生的唯一地方是菜单打开时?
    猜你喜欢
    • 2012-12-01
    • 2019-07-26
    • 1970-01-01
    • 2021-05-05
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    相关资源
    最近更新 更多