我怎么能,或者是否有可能做到这一点,当网页加载时,它向您显示的第一件事是页面的一部分,锚标记是您希望该人首先看到的位置。
可能吗?
感谢您提前提供的所有帮助。
像这样简单的事情就可以了
<body onload=' location.href="#myanchor" '>
<a id='myanchor' href='#'>anchor text</a>
使用 JavaScript。
解决方案 1
加载文档时,转到所需的“哈希”或锚点
<script type="text/javascript">
function load()
{
window.location.hash="mylocation";
}
</script>
解决方案 2
在标题中:
<script type="text/javascript" language="javascript">
function moveWindow (){window.location.hash="mylocation";}
</script>
在身体标签上:
<body onload="moveWindow()">
还有你的锚:
<a name="mylocation"></a
>
这是一个更加动态的 2018 年更新。
如果您想拉 URL,从 URL 拉锚,并将页面移动到该锚,您可以在页面加载时运行此 javascript。
if (window.location.href.indexOf('#') == 0) {
let hash = window.location.href.split('#')[1];
let hashTop = document.querySelector(`#${hash}`).offsetTop;
window.scrollTop = hashTop;
}
还有一种更简洁的方式。
if (location.hash) {
let target = location.hash;
window.scrollTop = document.querySelector(target).offsetTop;
}
如果你不使用 babel 编译 ES6,只需将let
关键字更改为var
. 这也适用于 WordPress,它将在 URL 中的锚点之前添加一个斜杠。
最后,杰克斯科特的回答对我有用。如果有人像我一样是菜鸟,请确保将其放在您的头标签中,也许就在结束标签的正上方,并从下面复制带有标签的完整脚本(我希望人们会考虑这样做,对于我们这些菜鸟谁需要确切的细节)。
<script type="text/javascript">
window.addEventListener('load', function() {
if (location.hash) location.href = location.hash;
});
</script>
事实证明,这些答案的混合对我来说是最好的选择,并且通过从 URL 中拉取锚点并强制页面在预期目的地加载来具有动态的优势:
if (location.hash) location.href = location.hash;
这是我的项目最干净的解决方案,因为还有许多其他的东西正在运行:
查询:
$(window).on("load", function() {
if (location.hash) location.href = location.hash;
}
香草:
window.addEventListener('load', function() {
if (location.hash) location.href = location.hash;
}