我想做的是,当移动菜单打开时,使主体内容无法滚动,但页面位置被保存,当主体内容的位置变为固定值后再次取消固定值时,用户不会失去在页面上的位置。
以下代码在Chrome dev-tool的iphone模拟器中运行良好,但在我实际的iPhone SE(使用Chrome和Safari浏览器)上不起作用。有没有人能解释一下为什么呢?
以下代码在Chrome dev-tool的iphone模拟器中运行良好,但在我实际的iPhone SE(使用Chrome和Safari浏览器)上不起作用。有没有人能解释一下为什么呢?
function storeBodyScroll() {
var scrollpos = $('html').scrollTop();
$('body').css({top: -scrollpos});
}
function closeMenu() {
// See if the body's scroll position is being held
var scrollpos = parseInt($('body').css('top'), 10);
$('body').removeClass('mobile-menu-open');
// Scroll to it if it is and remove held position
if (!!scrollpos && scrollpos < 0) {
$('html').scrollTop(-scrollpos);
$('body').css({top:0});
}
}
function openMenu() {
storeBodyScroll();
$('body').addClass('mobile-menu-open');
}
body.mobile-menu-open {
position: fixed;
overflow-y: scroll;
}
body
设置为overflow: hidden
,默认情况下设置为overflow: auto;
。也许它会有所帮助,也许不会,无论如何,祝你好运。 - chriskirknielsenpointer-events:none;
添加到body
(并确保您的菜单有pointer-events:auto;
),那么这种情况是否仍会发生呢?在这里试图解决问题... - chriskirknielsen