Я использую element.scrollIntoView () в своем угловом приложении.
Я получаю нужный элемент, который появляется, когда работает моя функция щелчка.
мой файл TS:
elem1;
elem2;
ngOnInit() {
this.elem1 = document.getElementById('elem1');
this.elem2 = document.getElementById('elem2')
}
handleElemScroll(elem) {
// elem.scrollTop = 1000;
elem.scrollIntoView({behavior: 'smooth', block: 'end'});
}
И в моем шаблоне я использую mat-nav-list и по щелчку, передавая идентификатор элемента и используя elem1.scrollIntoView () или elem2.scrollIntoView (), чтобы вывести на экран нужный элемент (на данный момент принести это в поле зрения, но в идеале элемент должен быть сверху).
<div class="new-side-nav">
<mat-nav-list>
<a mat-list-item>
<span (click)="handleElemScroll(elem1)">Go to elem1</span>
</a>
<a mat-list-item>
<span (click)="handleElemScroll(elem2)">Go to elem2</span>
</a>
</mat-nav-list>
</div>
Когда работает функция щелчка, я вижу, как оба элемента появляются при нажатии (работает scrollIntoView). Но поведение щелчка непредсказуемо. Иногда щелчок срабатывает, и запускается функция handleElemScroll (), в других случаях ничего не происходит.
Есть какие-нибудь подсказки, почему это происходит?