2017-03-07 75 views
0

我想阻止我的响应导航菜单消失,同时打开由于窗口滚动功能,我如何禁用功能,而导航菜单打开,因为我想菜单留下来固定和不消失,直到菜单再次关闭?防止JQuery窗口滚动时响应的导航菜单打开

的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

谢谢

回答

0

我想你想要做的是把检查中,显示/功能隐藏.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; 
}); 
+0

谢谢,这只会在菜单打开时禁用它吗? –

+0

惊人的感谢,作品一种享受,我如何停止在这个事件上滚动身体? –

+0

@PaulStephenDavis编辑答案底部应该防止在身体上滚动。 – Razzildinho