После того, как вы прокрутили в контейнере, в котором активна какая-то активная привязка прокрутки CSS, как долго длится задержка с момента окончания пользовательской прокрутки, когда браузер начинает прокручивать до позиции привязки?
Я написал отвечать на вопрос Привязка прокрутки CSS с эффектом анимации, где имитирую событие scrollend
, устраняя обратный вызов события прокрутки на 250 мс. Кажется, это достаточно близко к реальному значению в браузере Chrome. Но было бы неплохо получить какие-то первоклассные значения. Где-то может быть даже API, чтобы я мог получить правильное значение с помощью JS.
Модуль CSS Scroll Snap Уровень 1:
The CSS Scroll Snap Module intentionally does not specify nor mandate any precise animations or physics used to enforce snap positions; this is left up to the user agent.
Я твердо предполагаю, что большинство браузеров, поддерживающих привязку прокрутки (например, Firefox), используют те же функции, что и для scroll-behavior: smooth;
.
The scrolling box is scrolled in a smooth fashion using a user-agent-defined timing function over a user-agent-defined period of time. User agents should follow platform conventions, if any.
Это означает, что могут быть различия не только между браузерами, их конкретными версиями, но и в зависимости от операционной системы, в которой они работают. Также обратите внимание, что браузеры могут изменять анимацию в зависимости от пользовательских настроек (например, из-за проблемы доступности).
Я не думаю, что существует API для получения точных задержек и/или функций сглаживания.
Я столкнулся с той же проблемой и создал что-то вроде работающее: stackoverflow.com/questions/65952068/…