【问题标题】:How to go to an specific anchor when entering the page (doesn't work)进入页面时如何转到特定锚点(不起作用)
【发布时间】:2011-12-19 09:09:37
【问题描述】:

首先,这是我目前的游戏状态:thsbrk.de

黑匣子应该是例如关于部分。我想实现这一点,如果您进入我的页面 (thsbrk.de),您可以直接转到我的参考部分(锚点“#references”)。然后,如果您点击 about 链接,您将向上滚动到 about 部分。我已经尝试让它工作,但它没有。锚似乎不起作用。

如果有人可以查看我的代码并为我提供解决方案,那就太棒了:)

(滚动还没实现,我只求锚点问题)

编辑:这里我有一个应该如何工作的例子:Example

【问题讨论】:

  • 他们滚动。他们使用 window.scrollTo

标签: javascript html anchor markup


【解决方案1】:

在头部添加一个这样的脚本标签。让它也成为第一个脚本。

<script>
location.href="http://thsbrk.de/#references"
</script>

从您的代码中,您也做了同样的事情。但只需尝试重新排序它可能会起作用的脚本标签。

【讨论】:

    【解决方案2】:

    纯 JS:

    window.onload=function() {
      var anchorHash = 'references';
      document.getElementsByName(anchorHash)[0].scrollIntoView();
    }
    

    这是一个 2009 年的 jQuery 示例 - 可能会有更新的方法

    How do I scroll a row of a table into view (element.scrollintoView) using jQuery?

    在你的情况下这可能有效

    $(document).ready(function() {
      var anchorHash = 'references';
      var pos = $('#'+anchorHash).position();
      window.scrollTo(0,pos.top);
    });
    

    【讨论】:

    • 由于相关元素没有设置name 属性,这将不起作用。
    • 我不想滚动它。我将在我的帖子中编辑一个示例。
    • @Vilx:这是来自他的网站:&lt;div id="cola" class="grid_7"&gt; &lt;a name="references"&gt;&lt;/a&gt;
    • 好的很酷,谢谢,我想我会试试的。我希望它会工作。
    【解决方案3】:

    试试这个并告诉我结果:

    $(document).ready(function() {
       window.location.href = '#references';
    });
    

    然后像这样修改你的锚标记:

    <a name="references">Here</a>
    

    【讨论】:

    • 这是一个糟糕的解决方案。为什么不直接滚动或设置 location.hash?
    • 因为他/她不想强迫访问者使用滚动条。我认为这不难理解。
    • 这似乎与我已经完成的几乎相同,只是缺少文档准备功能。会试一试的。
    • 不要忘记您需要有足够的页面高度才能将用户导航到您想要的任何地方。否则,您的锚点可能不会位于页面顶部。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2015-01-21
    • 1970-01-01
    相关资源
    最近更新 更多