1 前言
在制作2048時,需要在手機端添加滑動檢測事件,然后發現控制台有警告,如下:
main2048.js:218 [Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/5093566007214080
2 解決辦法:
在touch的事件監聽方法上綁定第三個參數{ passive: false },
通過傳遞 passive 為 false 來明確告訴瀏覽器:事件處理程序調用 preventDefault 來阻止默認滑動行為。
方法1
elem.addEventListener( 'touchstart', fn, { passive: false } );
方法2
* { touch-action: pan-y; } 使用全局樣式樣式去掉
3 參考
1. 滑動時候警告:Unable to preventDefault inside passive event listener