1. 程式人生 > >Unable to preventDefault inside passive event listener due to target being treated as passive

Unable to preventDefault inside passive event listener due to target being treated as passive

最近在做Vue專案,做了個swiper,滾動圖片時報了個這個警告:

  

 

 

 原因:

由於瀏覽器必須要在執行事件處理函式之後,才能知道有沒有掉用過 preventDefault() ,這就導致了瀏覽器不能及時響應滾動,略有延遲。
所以為了讓頁面滾動的效果如絲般順滑,從 chrome56 開始,在 window、document 和 body 上註冊的 touchstart 和 touchmove 事件處理函式,會預設為是 passive: true。瀏覽器忽略 preventDefault() 就可以第一時間滾動了。

解決方法:

  百度了一下網上方法很多,我推薦這種方法,比較簡單

<style>

    * { touch-action: pan-y; }

</style>

&n