【问题标题】:Jumping into an inner link without changing the address bar?在不更改地址栏的情况下跳转到内部链接?
【发布时间】:2012-04-16 01:54:33
【问题描述】:

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

<a name="foo">

然后实现与用户按下相同的功能

<a href="#foo">

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

【问题讨论】:

  • 为什么?这会损害链接到页面部分的能力。我一直这样做(包括在这个网站上)。

标签: javascript html


【解决方案1】:

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

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

您还应该删除 &lt;a name="foo"&gt; 链接,并将它们替换为任何具有 id 的元素。例如:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 拜托,document.getElementById("id").scrollIntoView(); 是 1 行代码,不需要 1000 行长的库,更不用说额外的插件了......为什么应该避免使用 jQuery
    • 但是,如果我仍然使用 jQuery,它可能是更好的方法(在这种情况下不是,也许是因为插件)。
    猜你喜欢
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 2016-01-12
    相关资源
    最近更新 更多