页面中经常会碰到弹出层的部件,当弹出层激活时掩盖全部页面,且背景部份不能转动。完成起来有以下要点:
弹出层
position
设置为fixed
,四个定位锚点均设为0;激活弹出层时给html和body设置
overflow: hidden;
;
以下是实践:
为了让完全制止转动,还能够在mousewheel
和touchmove
事宜(离别对应PC和挪动端)中挪用preventDefault()
要领:
function forbidScroll(e) {
e.preventDefault && e.preventDefault();
e.returnValue = false;
e.stopPropagation && e.stopPropagation();
return false;
}
须要注重的是:chrome默许将touchmove
事宜视为passive,目标是进步用户体验,让处置惩罚平常事宜时页面一样能够转动,所以addEventListener
的第三个参数需设置为:
{
passive:false
}