2017-08-25 67 views
0

的可见部分现在我有一个网页:获取滚动HTML元素的相对位置,以集装箱

  1. 以不同的尺寸,覆盖了网页主要内容的顶部有固定的头。
  2. 带深度嵌套滚动容器的页面。
  3. 在该容器中,还有其他几个深度嵌套元素。

我想要做的是滚动该容器,使里面排队的元素与容器的可见部分的顶部之一。 我相信我正在寻找的是相对于容器可见部分顶部的嵌套元素的顶部。

不幸的是,我不能使用.offsetTop,因为它只引用一个元素的直接父级,并且由于页面的结构,这些元素嵌套得太深以至于没有任何用处。它始终是一个固定的数字。与滚动容器相同;它的直接父母不是窗口。令人沮丧的是,头部并不是一个固定的高度,所以我不能很容易地将它硬编码到我的计算中。我也不能使用jQuery。

我尝试使用getBoundingClientRect为元素和容器,但他们总是一个固定的距离远离对方,它并没有给我的信息,我需要多大的元素滚动相对于容器的可见地区,不幸的是。

编辑:我们已经有一个滚动的解决方案,但我们希望通过某些建议的手段,我试图确定的可行性,以改善它。我想请求大家试着只用粗体回答这个问题,而不是提出其他解决方案。我真的很感谢提供的任何帮助,但我希望能够根据一个非常具体的情况得到一些非常具体的信息。

+0

你能提供一个工作的例子吗? – Dekel

+0

剂量你想滚动的元素有一个ID? –

+0

@KoushikChatterjee元素具有唯一的类名称。我可以很容易地获得元素对象和容器元素对象。 – TheSoundDefense

回答

0

我也有过这样的问题前,你可以如果你想试试这个自动滚动到元素

var elem = <some select operation that returns the element>; 
elem.id = <some temp id> //if no id is there 
var a = document.createElement('a'); 
a.href = "#" + elem.id; 
a.click(); 

,你可以从你的元素删除ID一旦其完成。

+0

这是否会将'elem'带到页面顶部,它会被头部覆盖,还是会将elem放在头部下方? – TheSoundDefense

+0

好,希望到页面的顶部..只是试试看。 –

+0

嗯,我没有任何问题滚动元素。我的问题是让它滚动到真正的特定点。 – TheSoundDefense

相关问题