Как это работает
intent-link наблюдает за движением пользователя по странице и оценивает, к какой видимой цели он приближается. Когда сигнал становится достаточно сильным, библиотека вызывает функцию onIntent этой цели.
1 · Наблюдение за движением
На компьютере библиотека читает движение указателя, а на сенсорных устройствах — прокрутку. Она просыпается только при взаимодействии и снова отдыхает, когда движение прекращается.
2 · Выбор цели
Механизм сравнивает движение пользователя с видимыми целями. Цели за пределами области просмотра не участвуют в расчётах.
3 · Запуск работы
Когда выбор цели становится достаточно вероятным, её callback onIntent выполняется один раз. Он может сработать снова, если пользователь отдалится и позднее вернётся.
Компьютер и телефон
- На компьютере механизм отслеживает двумерное движение указателя.
- На телефоне он отслеживает вертикальную прокрутку и включается при первой прокрутке.
- Скрытые и находящиеся за пределами экрана цели игнорируются, включая элементы, скрытые адаптивным CSS.
Идея из физики
Представьте каждую цель как небольшую гравитационную впадину. Движение создаёт кинетическую энергию, а расстояние до цели — потенциальную энергию. Быстрый указатель или прокрутка ещё сохраняют импульс, а медленное движение рядом с целью похоже на остановку у неё. По правилу, похожему на термодинамику, механизм считает такие точки с низкой энергией более вероятным выбором.
В данных о движении браузера есть небольшие скачки и ошибки. Фильтр Калмана сглаживает этот шум перед физическим расчётом. Проще говоря, он помогает отличить намеренное движение от нестабильных измерений. Всё это происходит внутри библиотеки; приложение получает только onIntent.