7

我有一个位于页面底部的 div:

<div id="myDiv"></div>

我想在执行完我的 JS 函数后转到这个 div。换句话说,我想让我的 url 变成myurl#myDiv并转到我的 div。但无需重新加载页面。如何使用 JavaScript 做到这一点?不幸的是,我还没有找到解决这个问题的有效解决方案。我没有使用任何 JS 库和框架。

4

3 回答 3

31

要滚动到特定元素,请使用IE6+ 和真实浏览器支持的scrollIntoView

document.getElementById('myDiv').scrollIntoView();

检查window.location.hashDOMReady,查看 URL 中是否有与文档中的任何元素匹配的哈希。

如果文档中有#myDiv链接,您需要向onclick它们添加侦听器,手动执行滚动,按照上面的代码,并return false避免跟随链接到#myDiv.

演示

于 2012-09-05T14:07:12.200 回答
11

尝试将窗口的位置设置为 ID 的位置。然后浏览器将滚动到该元素。

window.location.hash = '#myDiv';
于 2012-09-05T14:07:47.153 回答
3

scrollIntoView (true)方法还接受一个参数,指定是对齐到顶部 (true) 还是底部 (false)。

于 2012-09-05T14:12:13.277 回答