当页面弹层内容过长(如规则弹窗),手动滑动时,经常是滚动页面内容,而非弹层内容,这种情况的用户交互不是太友好。
解决办法:
当弹出弹层时,手动将页面定住,禁止滚动。
首先想到的就是 “fixed”:
function stopMove() {
// 滑动长弹窗时,阻止背景跟随滑动
var top = -$(window).scrollTop();
$('body').css({
'position': 'fixed'
})
setTimeout(function () {
$('body').css({
'top': top + 'px'
})
}, 10)
}
关闭弹窗时,再恢复:
function recoMove() {
// 长弹窗隐藏时,恢复页面默认样式
var top = parseInt(-$('body').css('top').replace('px', ''));
$('body').css({
'position': 'relative',
'top': '0'
})
$(window).scrollTop(top);
}