【发布时间】:2019-10-31 22:50:21
【问题描述】:
在网页上,我有一个覆盖div,将通过单击特定按钮或图像来显示。为了避免在背景中滚动,我在显示叠加层时使用overflow: hidden 在正文中添加了一个 CSS 类。
在桌面浏览器上,这可以按预期工作,但在 iOS Safari(在我的情况下为 iOS 12.x)上,页面仍然在后台滚动。
有人知道解决办法吗?
$('.item-overlay, .item-overlay .morelink').on('click', function(e) {
overlay_id = $(this).parent().parent().attr('id') + '-popup';
page_link = $(this).attr('data-typolink');
$('#' + overlay_id).css('display', 'flex').hide().fadeIn(300);
$('#' + overlay_id).scrollTop(0);
$('body').addClass('NoScrolling'); // Scrollen im Hintergrund vermeiden (durch Hinzufügen einer entspr. CSS-Klasse)
$('body').on('touchmove', function(e) { // doesn't work
e.preventDefault();
});
});
body.NoScrolling {
overflow: hidden;
}
【问题讨论】:
标签: javascript jquery html css overscroll