需要在 html 锚上点击两次才能转到 id 或 name
need clicked twice on html anchor to go to id or name
我在 firefox 上遇到了这个小问题(在 chrome 上工作正常),我有一个按钮列表,这些按钮在页面目标中具有不同的锚点,我使用的是 id,但是(在 firefox 上)只有锚点第二次点击工作,第一次点击只改变 URL.
<a href="#section1">button 1</a>
<a href="#section2">button 2</a>
目的地
<section id="section1">
some content
</section>
<section id="section2">
some content
</section>
我也已经尝试过 name="" 但它仍然需要双击才能工作,有没有解决这个问题的方法或者它是 firefox 上的错误?
试试这个:
<a href="javascript:document.getElementById('section1').scrollIntoView(true);">
Button 1
</a>
<a href="javascript:document.getElementById('section2').scrollIntoView(true);">
Button 2
</a>
目的地:
<section id="section1">
some content
</section>
<section id="section2">
some content
</section>
我可以验证 Firefox 和 Safari 中是否存在该问题。这可以在没有 JS 的情况下通过配置路由器的 scrollBehavior 来解决,如文档中所述 (Router v3 | Router v4):
路由器 V3 的解决方案如下所示:
scrollBehavior(to, from, savedPosition) {
if (to.hash) {
return { selector: to.hash };
}
}
或路由器 V4:
scrollBehavior(to, from, savedPosition) {
if (to.hash) {
return { el: to.hash };
}
}
我在 firefox 上遇到了这个小问题(在 chrome 上工作正常),我有一个按钮列表,这些按钮在页面目标中具有不同的锚点,我使用的是 id,但是(在 firefox 上)只有锚点第二次点击工作,第一次点击只改变 URL.
<a href="#section1">button 1</a>
<a href="#section2">button 2</a>
目的地
<section id="section1">
some content
</section>
<section id="section2">
some content
</section>
我也已经尝试过 name="" 但它仍然需要双击才能工作,有没有解决这个问题的方法或者它是 firefox 上的错误?
试试这个:
<a href="javascript:document.getElementById('section1').scrollIntoView(true);">
Button 1
</a>
<a href="javascript:document.getElementById('section2').scrollIntoView(true);">
Button 2
</a>
目的地:
<section id="section1">
some content
</section>
<section id="section2">
some content
</section>
我可以验证 Firefox 和 Safari 中是否存在该问题。这可以在没有 JS 的情况下通过配置路由器的 scrollBehavior 来解决,如文档中所述 (Router v3 | Router v4):
路由器 V3 的解决方案如下所示:
scrollBehavior(to, from, savedPosition) {
if (to.hash) {
return { selector: to.hash };
}
}
或路由器 V4:
scrollBehavior(to, from, savedPosition) {
if (to.hash) {
return { el: to.hash };
}
}