我在页面顶部有一个固定的 div,在页面下方有一个链接列表。用户可以单击一个运行 onclick 的链接:
function setOffset(){
location.hash = offset; //where offset is some number I want as the hash
scrollTo(0, 40);
}
我想要发生的是跳转到散列链接,然后额外滚动 40 以使该项目进入 View 并从固定 div 下移出。问题是scrollTo 跳转到页面顶部并杀死了哈希。有人有主意吗?
最佳答案
http://www.w3schools.com/jsref/met_win_scrollto.asp
scrollTo(xPos, yPos)
所以在你的代码中:
scrollTo(0, 40);
表示滚动到 x 位置 0(左侧)和 y 位置 40(距顶部向下 40 像素)。您需要计算散列的位置,然后向其添加 40,以额外滚动 40 个像素。我相信您可以通过元素的 offSetTop 属性来获取页面上元素的位置。
HTH。
编辑: 因此,在您的示例中,您似乎已经有一个偏移量,我假设它是您尝试滚动到的元素的偏移量,因此您的代码将如下所示:
function setOffset(){
scrollTo(0,offset + 40);
}
关于Javascript 滚动过去的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5703272/