Получение конкретной позиции прокрутки div с помощью React - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь запустить некоторый код, когда вертикальная полоса прокрутки достигает определенной точки (определенного 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

...