TGViewer
Будни разработчика Будни разработчика @htmlshit · 14.4K subscribers
Post #3404 2.98K
#заметка дня

Автор прекрасной борды tldraw.com выложил вопрос-демонстрацию: «Как же отличить мышь от тачпада?» Ведь они, по мнению браузера, вроде как одно устройство ввода.

И на видео чётко видно, что на тачпаде скроллить во всех направлениях получается точнее, сильно точнее, чем мышью.

И ответ-то на самом деле кроется в вопросе: тачпад действительно отдаёт браузеру гораздо меньшее значение дельты (разницу в скролле между двумя опросами состояния), чем мышь.

И ему вроде даже дали ответ на StackOverflow: https://stackoverflow.com/questions/10744645/detect-touchpad-vs-mouse-in-javascript

Приложу сюда кратчайший сниппет:


var isTrackpad = false;
if (e.wheelDeltaY) {
if (e.wheelDeltaY === (e.deltaY * -3)) {
isTrackpad = true;
}
}
else if (e.deltaMode === 0) {
isTrackpad = true;
}
console.log(isTrackpad ? "Trackpad detected" : "Mousewheel detected");
}

document.addEventListener("mousewheel", detectTrackPad, false);
document.addEventListener("DOMMouseScroll", detectTrackPad, false);


И пример: https://jsfiddle.net/ucLe3hLa/

Вот только из мышей у меня имеется Logitech MX Master 3 и её колёсико... слишком плавное. Даже в дискретном режим. Браузер опять же определяет её как тачпад :)

В общем, счастья нет. Действительно рабочего способа отличить мышь от тачпада — не существует.

Потому предлагайте пользователям мыши другие способы взаимодействия с холстом, если речь о борде или вращении камеры. Кликнуть-и-потянуть на мышке всё ещё удобнее, чем скроллить в разные стороны.

#mouse #touchpad #event
  • 👍 5
  • ❤ 2
More from @htmlshit
  1. Oct 13, 2026#инструмент дня Когда надоело, что ссылки из рабочего Slack открываются в личном профиле C…
  2. Oct 12, 2026#статья дня У vlt.io есть собственный коммерческий реестр npm-пакетов. Казалось бы, зачем…
  3. Oct 11, 2026#дичь дня Лукас Бономи сделал GSS (GPU Style Sheets) — язык, на котором можно создавать по…
  4. Oct 10, 2026#инструмент дня TanStack Charts 1.0 — Таннер Линсли довёл до стабильного релиза свою библи…
  5. Oct 6, 2026#ссылка дня Недавно в нашем чате был жаркий спор на тему доступности. Мол, нормально делай…
  6. Oct 5, 2026Стилизация тултипов Два года назад я писал о проблеме с title и о принятом рабочей группой…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →