使用touchstart和touchmove时项目报如下警告:
这个警告信息是由浏览器提供的,主要是为了提醒开发者关注性能问题。在移动设备上,'touchstart'事件可能会导致滚动操作的响应问题。当你在'touchstart'事件上添加了一个非被动的监听器(即监听器中有一些操作会影响默认行为,例如阻止滚动),浏览器可能会认为这是一个滚动阻止的行为,因此会发出这样的警告。
解决方法:
- 如果你的事件处理器确实需要阻止默认行为,确保它是被动的,即不要在处理函数中调用
preventDefault()
。 -
如果你的事件处理器需要执行一些操作,但不影响滚动,可以考虑将事件监听器标记为被动的,使用
{ passive: true }
选项。例如:
element.addEventListener('touchstart', handleTouchStart, { passive: true });