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