如何在进入页面时跳转到特定的锚点位置(无效)

4
首先,这是我的当前状态:thsbrk.de。黑色的方框应该是关于我(about)的部分。我希望实现这样的效果:当你进入我的页面(thsbrk.de)时,直接跳转到我的参考部分(锚点“#references”)。然后,如果你点击关于链接,就会滚动到那个关于部分。我已经尝试过让它工作,但不起作用。锚点似乎无法正常工作。
如果有人能够查看我的代码并为我提供解决方案,那将非常棒 :)
(滚动还没有实现,我只是询问锚点问题)
编辑:这里有一个示例,说明它应该如何工作:示例

它们滚动。它们使用 window.scrollTo。 - mplungjan
3个回答

1
把这样的脚本标签放在标签中,让它是第一个脚本标签。
<script>
location.href="http://thsbrk.de/#references"
</script>

从你的代码来看,你已经做了同样的事情。但是尝试重新排列脚本标签,可能会起作用。


1

纯JS:

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

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

如何使用jQuery滚动表格的一行使其可见(element.scrollintoView)?

在您的情况下,这可能有效

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

由于相关元素没有设置name属性,因此这种方法不起作用。 - Vilx-
我不想滚动它。我会在我的帖子中编辑一个示例。 - user1105530
@Vilx:这是他的网站上的内容:<div id="cola" class="grid_7"> <a name="references"></a> - mplungjan
好的,太棒了,谢谢你,我想我会尝试一下。希望它能够正常工作。 - user1105530

0

试一下,告诉我结果:

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

然后修改您的锚标签如下:

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

这是一个糟糕的解决方案。为什么不直接滚动或设置location.hash呢? - mplungjan
因为他/她不想强迫访问者使用滚动条。我认为这不难理解。 - Mohammad Saberi
这似乎与我已经完成的几乎相同,只是缺少文档就绪函数。我会试一试。 - user1105530
不要忘记,您需要有足够的页面高度,以便能够将用户导航到您想要的任何位置。否则,您的锚点可能不在页面顶部。 - Mohammad Saberi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接