Javascript 滚动过去的哈希值

标签 javascript hash scroll

我在页面顶部有一个固定的 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/

相关文章:

javascript - 将 Promise 用于 onload 和 onerror 后返回状态值

security - 散列和加密算法之间的根本区别

c# - 如何自动滚动到包装面板中的特定项目?

javascript - 滚动时 DOM 元素位置变慢 + 滚动条滚动和鼠标/触摸板滚动之间的区别

javascript - 如何在 WordPress 中单击按钮时显示 iframe 弹出窗口?

javascript - 拦截DOM和JS引擎调用

javascript - JS DOM - 添加/删除按钮不起作用

Ruby:如何检查变量是否存在于哈希定义中

ruby - 尝试使用 Ruby 中的字符串值引用哈希

jquery - 根据元素的位置更改元素类