0

我正在尝试链接到锚点处的页面,即:

<a href="/about/#content/">About</a>

<div id="content">…&lt;/div>

正常的浏览器行为是渲染页面,然后跳转到锚点/ID。有没有办法在页面呈现之前将页面定位在锚点位置?

我试过使用

$(document).scrollTop( $('#content').offset().top );

认为它可能会足够快地移动到位置以防止整个页面加载的闪烁,但是在 DOM 准备好之前它不起作用,所以它不够快。

我可以通过有选择地隐藏元素,移动到位置,然后显示它们来拼凑一个解决方法,但我想知道是否有一种我不知道的方法。

4

1 回答 1

0

我认为没有其他直接的方法可以做到这一点。您只能保证更快地链接到特定的 div,使该 div 尽快在 DOM 中可用。

您可以通过加载所需的 div 来静态链接,同时动态加载其他 div 的内容。再次执行此操作时,您必须通过执行代码确保页面始终滚动到此 div

$(document).scrollTop( $('#content').offset().top );

周期性地,当页面的其他内容被动态加载时,页面大小可能会增加,我们希望始终保持滚动位置在内容 div 上。

于 2013-02-11T08:03:44.107 回答