css - 使用 css anchor 时的 Angular 路由器问题

标签 css angular angular-routing

<分区>

我想在我的 html 页面中使用 css anchor 。 下面是我的代码:

<a href="#test"></a>

<div id="test" name="test">123</div>

但我会得到这个问题。 angular router issue

实际上,我不希望 Angular 路由器工作。

最佳答案

文档引用:Angular Routing Navigation

解决这个问题的办法是

选项 1:使用片段

在您的 HTML 文件中

<a [routerLink]="['/']" fragment="test"></a>

在你的 Typescript 文件中

 ngOnInit() {
     this.route.fragment.subscribe(fragment => { this.fragment = fragment; });
    }

    ngAfterViewChecked(): void {
      try {
          if(this.fragment) {
              document.querySelector('#' + this.fragment).scrollIntoView();
          }
      } catch (e) { }
    }

选项 2:只需创建方法并滚动

在您的 HTML 文件中

<button (click)="scroll(test)"></button>
<div #test >Your target</div>

在你的 .ts 文件中

scroll(el) {
    el.scrollIntoView({ behavior: "smooth"});
}

Angular 6.1 及更高版本也有一个名为 anchorScrolling 的选项,但据我所知,它仍处于测试阶段

引用 how to use anchorScrolling

关于css - 使用 css anchor 时的 Angular 路由器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52940042/

上一篇:javascript - jQuery next() 找不到查找元素或返回 console.log()

下一篇:css - 如果包含长文本,Bootstrap 4 固定列会折叠并弄乱响应式隐藏

相关文章:

javascript - 将 CSS 应用于动态创建的 ID

jquery - 动态改变导航栏的颜色

javascript - Angular : Cannot read property 'on' of undefined

angular - 如何将 jquery 导入到vendor.ts Angular 2 webpack

javascript - 如何在 Angular 模块中定义层次结构路由

html - 如何使用下面的导航链接在 Bootstrap 4 中将导航栏 Logo 居中

html - 表格导致水平滚动条出现在移动设备上

Angular 预选选择选项

angular - 在 Angular 的嵌套路由器导出中动态加载模块

angular - Ionic 4 Tab Button - 在 url/链接上使用参数?