首页 > 解决方案 > Angular5 ngAfterviewchecked , scrollIntoView()

问题描述

在页面加载时,它应该向下滚动到一个特定的 div 我使用下面的函数做了这个,但问题是在页面加载之后,它在向上和向下滚动时给了我问题,下面的函数不允许我正确地向上和向下滚动.

ngAfterViewChecked(): void{

    if (this.primary){
      setTimeout(() => {
    this.scrollTo.nativeElement.scrollIntoView();
      },100);
  }
  }

我没有使用超时,所以滚动没有从 div 位置移动。它被固定在那里。但是一旦我使用 setTimeout 它开始移动但仍然给我带来问题。我只想在页面加载时使用 scrollIntoView 。

标签: angular

解决方案


使用变量来防止函数被多次调用

isStarting:boolean=true;
ngAfterViewChecked(): void{

    if (this.primary && this.isStarting){
      setTimeout(() => {
    this.scrollTo.nativeElement.scrollIntoView();
this.isStarting=false;
      },100);
  }
  }

推荐阅读