Angular5 ngAfterviewchecked,scrollIntoView()

时间:2018-12-04 13:20:24

标签: angular

在页面加载时,它应该向下滚动到一个特定的div,我使用下面的函数做了,但问题是在页面加载后,它在上下滚动时给了我一些问题,下面的功能不允许我向上滚动和适当地下来。

ngAfterViewChecked(): void{

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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