angular - 如何使 Angular `routerLink` 片段导航滚动到我的 `id` 目标?
问题描述
有人可以帮我让routerLink
片段滚动工作吗?
=> “工作”意味着当我点击 routerLink 时,它会滚动到具有匹配 id 的元素。;)
我所做的代码示例:
<co-trigger routerLink="." [fragment]="item?.id" *ngFor="let item of items">Trigger</co-trigger>
...
<co-target [attr.id]="item?.id" *ngFor="let item of items">Target</co-target>
笔记:
- the
co-trigger
和 theco-target
都在同一个模板中。 - 有些
co-target
实例有足够的内容,因此有一个滚动条,通过单击触发器滚动到该项目是有意义的。 - 导航栏中的 url 按预期更改
url#item-id
,但是单击触发器时不会发生滚动。
我的AppRoutingModule
设置:
@NgModule({
imports: [
RouterModule.forRoot(
routes,
{
onSameUrlNavigation: 'reload',
anchorScrolling: 'enabled',
scrollPositionRestoration: 'enabled',
scrollOffset: [0, 64], // [x, y] - adjust scroll offset
}
),
],
exports: [RouterModule]
})
export class AppRoutingModule {
}
上下文信息:
Angular: 11.2.6
关于我可以做些什么来使“滚动到锚定目标”功能起作用的任何想法?
解决方案
为此,我使用了一个名为ngx-page-scroll的包。
推荐阅读
- matlab - MATLAB - 在函数中自动应用 obj 引用
- r - 在 R 中的高尔夫网站上抓取排行榜表
- html - 对于具有 ex aequo 位置的有序列表 - OL 或 UL,哪个标签在语义上是正确的?
- django - Docker Nginx 背后的 Docker Wordpress/Apache - 端口号问题
- python - 为什么我不能使用 gensim 下载器从特定文件路径加载?
- select - 从 InfluxDB 数据库中提取单个字段值
- .net - 在 VB.NET 中用给定的大小和 X/Y POS 绘制一个圆会产生意想不到的结果
- python - 尝试切换 cmd discord.py 时出错
- php - 尝试在 Laravel 项目中渲染 React 组件时出现问题
- javascript - 使用 onChange 根据 React 中的索引选择特定复选框