如何使用 Aurelia 通过单击内部锚链接来保持在同一页面上?
How do I keep on the same page by clicking on internal anchor links, using Aurelia?
我正在为一个项目编写样式指南,目前我希望在锚 link 上有一个基本的点击行为,以便它们滚动到相应的 id。
举个例子:
<a href="#section"></a>
向下滚动到:
<div id="section"></div>
在 Aurelia 中,默认行为是将 link 视为路由。我无法让内部 link 工作,因为它会立即将我发送到外部页面。
有人知道如何解决这个问题吗?谢谢!
只需将点击事件处理程序添加到您的 link 并使用 scrollIntoView()。
这是一个有效的 fiddle,在全屏页面中打开它进行测试:)
document.getElementById('myLink').onclick = function(e){
document.getElementById('myDiv').scrollIntoView();
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
</head>
<body>
<a id="myLink">Click me!</a>
<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
<div id="myDiv">Hi there!</div>
</body>
</html>
根据 documentation,您可以通过几种不同的方式禁用劫持 link 的 Aurelia 路由器。其中一种方法是使用这些特殊属性之一:
<a href="/some/link" download>Skip Hijacking</a>
<a href="/some/link" download="">Skip Hijacking</a>
<a href="/some/link" router-ignore>Skip Hijacking</a>
<a href="/some/link" router-ignore="">Skip Hijacking</a>
<a href="/some/link" data-router-ignore>Skip Hijacking</a>
<a href="/some/link" data-router-ignore="">Skip Hijacking</a>
我正在为一个项目编写样式指南,目前我希望在锚 link 上有一个基本的点击行为,以便它们滚动到相应的 id。
举个例子:
<a href="#section"></a>
向下滚动到:
<div id="section"></div>
在 Aurelia 中,默认行为是将 link 视为路由。我无法让内部 link 工作,因为它会立即将我发送到外部页面。
有人知道如何解决这个问题吗?谢谢!
只需将点击事件处理程序添加到您的 link 并使用 scrollIntoView()。
这是一个有效的 fiddle,在全屏页面中打开它进行测试:)
document.getElementById('myLink').onclick = function(e){
document.getElementById('myDiv').scrollIntoView();
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
</head>
<body>
<a id="myLink">Click me!</a>
<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
.<br/>
<div id="myDiv">Hi there!</div>
</body>
</html>
根据 documentation,您可以通过几种不同的方式禁用劫持 link 的 Aurelia 路由器。其中一种方法是使用这些特殊属性之一:
<a href="/some/link" download>Skip Hijacking</a>
<a href="/some/link" download="">Skip Hijacking</a>
<a href="/some/link" router-ignore>Skip Hijacking</a>
<a href="/some/link" router-ignore="">Skip Hijacking</a>
<a href="/some/link" data-router-ignore>Skip Hijacking</a>
<a href="/some/link" data-router-ignore="">Skip Hijacking</a>