Javascript 如何找到特定元素的滚动位置?

Javascript 如何找到特定元素的滚动位置?,javascript,html,reactjs,Javascript,Html,Reactjs,这似乎是一个基本问题,但出于某些原因,例如document.body.offsetTop,window.scrollY,window.scrollTop,document.body.scrollTop,window.pageYOffset,无论我在页面上滚动到哪里,类似的内容都会返回0或undefined。还有一些其他细节,这是关于mobilesafari的,我正在XCode模拟器上运行,并使用Safari开发工具进行检查。我的代码使用document.pageYOffset,可以在桌面浏览器上

这似乎是一个基本问题,但出于某些原因,例如
document.body.offsetTop
window.scrollY
window.scrollTop
document.body.scrollTop
window.pageYOffset
,无论我在页面上滚动到哪里,类似的内容都会返回
0
undefined
。还有一些其他细节,这是关于mobilesafari的,我正在XCode模拟器上运行,并使用Safari开发工具进行检查。我的代码使用
document.pageYOffset
,可以在桌面浏览器上正常工作。唯一的其他限制是我不能使用jQuery。在其他所有被问到这个问题的时候,答案都使用了类似于
window.scrollY
或类似的东西,而这些东西在这里是不起作用的。是否有其他方法获取页面(或特定元素)的滚动位置?(编辑:相对于视口)

尝试使用jquery,然后


事实证明,选择元素,然后调用
getBoundingClientRect
可以实现这一点。例如:
let containerPosition=document.getElementById('select-unauthenticated-home-container').getBoundingClientRect().top然后您可以基于该值添加您的行为

OP声明他不能使用jQuery。@AndréDion什么是OP!?原始海报(提出问题的人)。@AndréDion yeh,tanx。相对于什么滚动位置?视口?容器元素?您需要提供代码和/或澄清您的问题。@AndréDion在视口中
var scrolltop = $("selector").scrollTop();
var scrollleft = $("selector").scrollLeft();