Перейти к основному содержимому
Веб-инструмент · Любой браузер · Без установки

Прокрутка мышью на Mac идёт рывками — измерьте сами

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

🔌 Без установки·🔒 Измеряется локально в браузере·🚫 Ничего не отправляется и не сохраняется

Трекпад

ожидание

Прокрутите двумя пальцами внутри рамки. Сделайте рывок и отпустите, чтобы записалась и инерция.

Различных величин шага
События
События / секунда
Медианный шаг
Наибольший шаг
Затухающий хвост

Колесо мыши

ожидание

Покрутите колесо внутри рамки примерно на то же расстояние, что и только что.

Различных величин шага
События
События / секунда
Медианный шаг
Наибольший шаг
Затухающий хвост
Общая вертикальная шкала — задаётся большей из двух записей

Что вы видите

Каждая вертикальная линия — одно событие прокрутки: положение по горизонтали означает момент его прихода, высота — запрошенное расстояние сдвига страницы. Обе панели используют одинаковую ширину полос и одинаковую вертикальную шкалу, поэтому формы можно сравнивать напрямую.

Главное число — количество различных величин шага

Трекпад в каждом событии сообщает непрерывно меняющееся расстояние и продолжает присылать события после того, как пальцы покинули поверхность. Колесо снова и снова сообщает один и тот же фиксированный щелчок. Трекпады обычно выдают десятки различных значений, колёса — часто ровно одно.

Это одно число объясняет всё. Когда колесо каждый раз присылает одинаковый скачок, macOS нечего интерполировать и страница двигается жёсткими ступенями. Ничего не сломано, и более дорогая мышь этого не изменит — так сообщает само оборудование.

Метод и ограничения

Запись использует стандартное DOM-событие «wheel». Каждая панель начинается с вашего первого события и останавливается после 500 мс покоя. Значения — это то, что раскрывает браузер, то есть уровень выше самого устройства: macOS уже применила собственную обработку прокрутки, а браузер под нагрузкой может объединять события. Сравнивайте два своих устройства на одной машине, а не абсолютные числа между машинами.

Частые вопросы

Почему на Mac прокрутка мышью идёт рывками, а трекпадом — плавно?

Потому что эти устройства присылают принципиально разные сигналы. Трекпад много раз в секунду сообщает непрерывно меняющееся расстояние и продолжает сообщать после того, как пальцы поднялись, — это затухание и есть инерция, которую вы чувствуете. Колесо на каждом щелчке сообщает одно и то же фиксированное значение, а между ними — ничего. macOS применяет значение колеса напрямую, поэтому страница двигается ступенями. Тест на этой странице показывает оба сигнала на одной шкале.

Решит ли более дорогая мышь проблему рывков прокрутки в macOS?

Обычно нет. Величина шага — свойство энкодера колеса, а не цены. Некоторые высокоточные колёса действительно сообщают более мелкие шаги, и тест покажет это как большее количество различных величин шага. Но большинство мышей, включая премиальные, сообщают одно повторяющееся значение, и никакие затраты не изменят способ интерполяции в macOS, поскольку интерполировать нечего.

Что означает «различных величин шага»?

Это количество разных расстояний прокрутки, которые устройство сообщило за одну запись, после округления до двух знаков для отсечения шума вычислений с плавающей точкой. Трекпад обычно выдаёт десятки, потому что каждое событие немного отличается. Колесо часто выдаёт ровно одно. Это число точнее всего объясняет разницу в ощущениях.

Инструмент читает оборудование напрямую?

Нет. Он читает стандартные события «wheel», которые получает браузер, — это уровень выше устройства: macOS уже применила собственную обработку прокрутки, а браузер под нагрузкой может объединять события. Поэтому абсолютные значения различаются между браузерами и версиями macOS. Осмысленный результат — сравнение двух ваших устройств на одной машине, а не сами величины.

В каких браузерах это работает?

Во всех, включая Safari и Firefox. Тест использует только стандартное DOM-событие «wheel», поэтому WebHID не нужен и запрос доступа к устройству не появляется. Ничего не отправляется и не сохраняется — перезагрузите страницу, и записи исчезнут.

Можно ли действительно избавиться от рывков при прокрутке колесом?

Да, программно. Промежуточные кадры, которые колесо никогда не присылает, можно сгенерировать: каждый щелчок превращается в короткую плавную анимацию вместо мгновенного скачка. LinguaX делает это для любой USB- или Bluetooth-мыши начиная с macOS 13, с настраиваемыми Min Step, Speed Gain и Duration, с переключателем для каждого приложения и без вмешательства в работу трекпада.

Превратите форму слева в форму справа.Плавная прокрутка для любой USB- или Bluetooth-мыши, с переключателем для каждого приложения и нетронутым трекпадом — LinguaX, нативное приложение около 10 МБ, разовый платёж $9,9.

Читайте также