2011-09-22 65 views
6

在我的网页上我有一个溢出的div(即与垂直滚动条)。在div里面,我有锚的ID。当我将其中一个id放入URL(mypage.html#id)时,我希望div而不是页面滚动到该锚点。如何将溢出的div滚动到标题标签(锚)?

我该怎么做,最好用普通的JavaScript?如果它太复杂,我会使用jQuery,但是我没有在这个项目中使用它。

+0

显示你的代码到目前为止 –

+0

所以这3个答案的工作,谢谢。我仍然需要进行跨浏览器测试,但现在我使用.focus() – user323094

+0

因此,在多个浏览器中进行测试表明只有.scrollTop()可以工作。 – user323094

回答

9
$('.overflow').scrollTop($('#anchor').offset().top); 

没有任何理由不能将它转换为标准的javascript。

请注意,如果锚元素上存在边距,滚动将关闭。

+0

我不得不重新组织我的HTML和CSS,但这是有效的(使用.position(),而不是.offset())。我看着jQuery源代码,并将这些方法拆分出来可能有点困难。如果我能成功,我会尝试发布纯JavaScript。 – user323094

+0

jQuery中存在太多的相互依赖关系来解决这个问题。到底是什么,我会用这个解决方案 - 我刚刚意识到,对于下一个功能,我会使用jQuery。感谢你的回答。 – user323094

+0

其实,我会用焦点()更简单的解决方案,只是测试它。 – user323094

2

您是否试图在锚上设置focus()

任何带有tabindex的DOM元素都是可聚焦的,任何具有焦点的元素都将被浏览器滚动到视图中。

+0

感谢您的回答。 – user323094

+0

是的,谢谢你! – chris