跳转到内部链接而不更改地址栏?

时间:2012-04-15 17:36:15

标签: javascript html

通常人们要求更改地址栏而不刷新,我想要相反:我想跳转到页面中的锚点,例如具有

<a name="foo">

然后实现与用户按

相同的功能
<a href="#foo">

不更改地址栏。这纯粹是装饰性的,但这意味着像“在完成后再次设置window.location”这样的建议将无济于事,因为中间的更改仍然会引人注意(地址栏会闪烁,这正是我想要的避免)。

2 个答案:

答案 0 :(得分:5)

有DOM函数element.scrollIntoView()。为了您的目的,这将是这样的:

var target = document.getElementById('foo');
target.scrollIntoView();

您还应删除<a name="foo">链接,并将其替换为任何带有ID的元素。例如:

<h1><a name="heading"></a>Heading</h1>

<h1 id="heading">Heading</h1>

答案 1 :(得分:1)

看看,jquery ScrollTo插件,http://demos.flesler.com/jquery/scrollTo/