Я пытаюсь запустить некоторый код, когда вертикальная полоса прокрутки достигает определенной точки (определенного div).
У меня проблемы с получением правильной позиции div, я пытаюсьдостичь.
Использование scrollIntoView
работает безупречно, например:
this.myDiv.scrollIntoView({ behavior: "smooth" })
При стрельбе по этой линии меня прокручивают в нужное место.
Когда я бегу по линии, подобной document.documentElement.scrollTop
, я получаю свою текущую позицию по оси Y.И когда я запускаю this.myDiv.scrollHeight
, я должен получить правильную позицию на оси Y div, верно?
Проблема в том, что последняя строка возвращает слишком низкое число по сравнению с числами, которыеdocument.documentElement.scrollTop
возвращает.
Мой код выглядит примерно так:
handleScroll = () => {
const divScroll = this.myDiv.scrollHeight
const currentScroll = document.documentElement.scrollTop
if(currentScroll >= divScroll) {
//I reach this way too early, no where near my div at this point
}
}
<body>
...
<div id="myDiv" ref={(el) => { this.myDiv = el; }}> ... </div>
</body>
Кто-нибудь знает, как я могу получить правильную позицию div, чтобы я мог сказать, является ли пользовательдостиг точки или нет?
Редактировать: Следует сказать, что положение div не является постоянным.Это зависит от пользователя.
/ Crellee