Про пассивные тач-события

Как-то мимо меня прошла небольшая революция в мире тач-событий. Оказывается, теперь в Хроме и подобных, они по умолчанию (при определённых условиях) задаются как пассивные, т. е., их нельзя отменить. Говорят, что помогает оптимизировать работу скролла.

То есть, такой код не сработает:

window.addEventListener('touchstart', e => e.preventDefault());

И выдаст предупреждение:

Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/5093566007214080

Надо так:

window.addEventListener('touchstart', e => e.preventDefault(), { passive: false });

А в большинстве случаев вообще лучше использовать touch-action: none.

2017
Популярное