我有一个位于页面底部的div:
<div id="myDiv"></div>
我想在执行JS函数后转到这个div。换句话说,我希望我的网址变为myurl#myDiv
并转到我的div。但是没有重新加载页面。如何使用JavaScript完成此操作?不幸的是,我还没有找到解决这个问题的工作方案。我没有使用任何JS库和框架。
答案 0 :(得分:20)
要滚动到特定元素,请使用IE6 +和真实浏览器支持的scrollIntoView:
document.getElementById('myDiv').scrollIntoView();
检查DOMReady上的window.location.hash
,查看网址中是否存在与文档中任何元素匹配的哈希值。
如果文档中有#myDiv
个链接,则需要向其添加onclick
个侦听器,根据上面的代码手动执行滚动,并return false
以避免关注指向#myDiv
的链接。
答案 1 :(得分:8)
尝试将窗口的位置设置为ID的位置。然后浏览器将滚动到该元素。
window.location.hash = '#myDiv';
答案 2 :(得分:3)
scrollIntoView(true)方法还接受一个参数,指定是对齐顶部(true)还是底部(false)。