У меня есть контейнер прокрутки, где дети прокручивают по вертикали.В нем много мелких элементов.Высота моего контейнера прокрутки составляет 100vh.Моя задача состоит в том, чтобы наблюдать их, как только они достигают 100px ниже верхней границы (в моем случае это верхняя часть области просмотра).
Для этого я создаю наблюдателя на пересечении в моем элементе контейнера прокрутки с rootmargin как -100px 0px 0px 0px
.
Я наблюдаю на пороге 1.
При обратном вызове наблюдателя на перекрестке я проверяю: entry.intersectionRect.top === entry.rootBound.top
.Это гарантирует, что я проверяю только самый верхний элемент.
Все эти операции происходят, как и ожидалось, но с одной проблемой: пересечение наблюдается не на 100px ниже вершины, а на 81px ниже вершины.Я подтвердил это, когда проверил, что в обратном вызове значение entry.rootBound.top равно 81px.
Я полагаю, что это не должно быть так, у rootBound должен быть top, аналогичный top margin, который я дал в параметре конструктора.
Очень плохо знаком с наблюдателем на пересечении, и я хочу использовать его в своем проекте, но не могу сделать это с несоответствиями.