Я пытаюсь заставить смещение прокрутки в div, содержащем список ngfor
Я пробовал это на div, который как переполнение-y:
@ViewChild('list') listRef: ElementRef;
затем при нажатии я пробую это с каким-то журналом, чтобы убедиться, что он называется
this.listRef.nativeElement.offsetTop = 500;
Ничего не происходит, есть идеи, как я могу этого добиться?
РЕДАКТИРОВАТЬ :
HTML:
<div
#gridContainerId
class = "gridContainer">
<a *ngFor = "let item of images;">
<img src = "{{getImage(item)}}"/>
</a>
</div>
css:
.gridContainer {
height: 90vh;
overflow-y: scroll;
}
составная часть :
@ViewChild('gridContainerId') ref: ElementRef;
this.store.pipe(
select(fromImages.getImages),
takeWhile(() => this.componentActive)
).subscribe(imagesItems => {
this.images = imagesItems;
updateScroll();
}
);
updateScroll(){
this.ref.nativeElement.scrollTop = this.ref.nativeElement.scrollHeight;
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я недавно был в вашем сценарии, когда нажимаю определенную кнопку, div прокручивается вниз, я добился этого с помощью этого кода:
this.messagesContainer.nativeElement.scrollTop = this.messagesContainer.nativeElement.scrollHeight;
свойство scrollTop позволяет указать количество пикселей, которые будут прокручиваться от верхней части представления. а свойство scrollHeight предназначено для получения общей высоты div.
Я предполагаю, что проблема здесь в том, что вы прокручиваете перед визуализацией представления, вам нужно добавить его внутри setTimeout, чтобы он выполнялся после визуализации представления и принимал его фактическую высоту
Я могу поделиться фрагментами кода, но я не могу включить все, и мне приходится его переименовывать. Вопросы конфиденциальности.
Я пробовал с таймаутом 2000 мс, тот же результат ничего не происходит, список загружается и отображается менее чем за 100 мс
Я пробовал это на контейнере, у которого есть переполнение, и ничего не происходит: /