我不确定询问/搜索此问题的最佳方式:
当您单击锚链接时,它会将您带到页面的该部分,链接区域现在位于页面的最顶部。我希望锚链接将我发送到页面的该部分,但我希望顶部有一些空间。例如,我不希望它将我发送到 VERY TOP 的链接部分,我希望那里有 100 像素左右的空间。
这有意义吗?这可能吗?
编辑显示代码 - 它只是一个锚标签:
<a href="#anchor">Click me!</a>
<p id="anchor">I should be 100px below where I currently am!</p>
原文由 damon 发布,翻译遵循 CC BY-SA 4.0 许可协议
这将允许浏览器为我们完成跳转到锚点的工作,然后我们将使用该位置进行偏移。
编辑1:
正如@erb 所指出的,这仅适用于您在页面上同时更改哈希值的情况。在 URL 中输入带有
#something
的页面不适用于上述代码。这是处理该问题的另一个版本:注意:要使用 jQuery,您可以在示例中将
window.addEventListener
替换为$(window).on
。谢谢@霓虹灯。编辑2:
正如一些人指出的那样,如果您连续两次或多次单击同一锚链接,上述操作将失败,因为没有
hashchange
事件来强制偏移。此解决方案是@Mave 建议的略微修改版本,并使用 jQuery 选择器为简单起见
这个例子的 JSFiddle 在这里