使用 default-passive-events 解决滚动背景的问题

由于 Chrome 想提高浏览器动画渲染帧数,要修改 eventListener 相关接口,出现了遮罩层无法屏蔽滚动动作的情况。

实现

安装依赖

npm install --save default-passive-events

code

require('default-passive-events'); 

preventBackScroll = (e) => { 
  e.preventDefault(); 
  e.stopPropagation(); 
} 

renderModal = (e) => { 
  // 阻止滚动 
  document.addEventListener('touchmove', this.preventBackScroll, { passive: false, capture: true }); 
  // 遮罩层实现代码省略 
  return 
{ // 关闭遮罩层时放开 document.removeEventListener('touchmove', this.preventBackScroll, { passive: false, capture: true }); }}>
}

你可能感兴趣的:(使用 default-passive-events 解决滚动背景的问题)