Я слушаю событие прокрутки для одного из моих элементов контейнера (div),
Внутри этого обработчика прокрутки я использую getBoundingClientRect
API на хосте (элемент контейнера) и его дочерний элемент для вычисления их позиции, но иногда это приводит к безостановочной рекурсивной OnScroll, в стеке вызовов я обнаружил, что getBoundingClientRect
API приводит к еще одному событию onScroll.
Мои вопросы здесь:
getBoundingClientRect
действительно генерировать событие Onscroll
?
Я прочитал здесь , что это приведет к изменению структуры пользовательского интерфейса, поэтому я думаю, именно поэтому оно вызывает программную прокрутку за сценой
- Даже если это вызывает
onScroll
за сценой, существует ли какой-либо флаг на событии, по которому я могу различить ч / б прокрутку события прокрутки 2, из-за использования какого-либо API или использования пользователем своего оборудования для прокрутки?
Я пытался setTimeout
, requestAnimationFrame
отменить прокрутку, но затем я теряю некоторые важные события прокрутки. Я увеличил время отката