使用React获取div的特定滚动位置

时间:2019-02-14 14:40:16

标签: javascript html reactjs scroll

我正在尝试在垂直滚动条到达特定点(特定div)时触发一些代码。

我在尝试到达的div的正确位置时遇到问题。

使用scrollIntoView的确无懈可击,例如:

this.myDiv.scrollIntoView({ behavior: "smooth" })

触发该行时,我滚动到正确的位置。

当我运行document.documentElement.scrollTop之类的线时,我在Y轴上获得了当前位置。当我运行this.myDiv.scrollHeight时,我应该在div的Y轴上获得正确的位置,对吗?

问题在于,最后一行返回的数字与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

0 个答案:

没有答案