angular - Angular5 ngAfterviewchecked , scrollIntoView()
问题描述
在页面加载时,它应该向下滚动到一个特定的 div 我使用下面的函数做了这个,但问题是在页面加载之后,它在向上和向下滚动时给了我问题,下面的函数不允许我正确地向上和向下滚动.
ngAfterViewChecked(): void{
if (this.primary){
setTimeout(() => {
this.scrollTo.nativeElement.scrollIntoView();
},100);
}
}
我没有使用超时,所以滚动没有从 div 位置移动。它被固定在那里。但是一旦我使用 setTimeout 它开始移动但仍然给我带来问题。我只想在页面加载时使用 scrollIntoView 。
解决方案
使用变量来防止函数被多次调用
isStarting:boolean=true;
ngAfterViewChecked(): void{
if (this.primary && this.isStarting){
setTimeout(() => {
this.scrollTo.nativeElement.scrollIntoView();
this.isStarting=false;
},100);
}
}
推荐阅读
- pyspark - 如何通过配对另一列的元素来创建一个新列?
- docker - 错误:traefik,xdbautomationworker,容器不健康
- javascript - Javascript如何循环子元素的子元素
- html - 搜索栏/ autoscoll
- javascript - 在 Angular 中播放本地保存的视频
- javascript - __ob__:观察者而不是我的对象数组( JSON.parse(JSON.stringify(obj)) NOT WORKING )
- python - 对“美国/东部”区域使用“groupby”时输出错误
- c# - 螺旋矩阵从左下角开始
- django - 在循环中修改后如何过滤 Django 查询集
- react-native - 适用于 android 的 Scrollable Pinch to Zoom 图像的最佳选择?