Вы можете просто получить ссылку на второй <div>
и установить его прокрутку влево на ту же сумму:
<div class="container" (scroll)="scrollTwo.scrollLeft = scrollOne.scrollLeft" #scrollOne>
...
</div>
<div class="container" #scrollTwo>
...
</div>
Если вы хотите иметь более сложную логику в своем компоненте для управления тем, какой должна быть сумма прокрутки, вы можете просто получить ссылку на два узла DOM через @ViewChild
:
<div class="container" (scroll)="updateScroll()" #scrollOne>
...
</div>
<div class="container" #scrollTwo>
...
</div>
@Component(...)
export class AppComponent {
@ViewChild('scrollOne') scrollOne: ElementRef;
@ViewChild('scrollTwo') scrollTwo: ElementRef;
updateScroll(){
const scrollOne = this.scrollOne.nativeElement as HTMLElement;
const scrollTwo = this.scrollTwo.nativeElement as HTMLElement;
// do logic and set
scrollTwo.scrollLeft = scrollOne.scrollLeft;
}
}
Вам не нужно получать ссылки через @ViewChild
. Вы могли бы просто передать их в метод, который называется:
<div class="container" (scroll)="updateScroll(scrollOne, scrollTwo)" #scrollOne>
...
</div>
<div class="container" #scrollTwo>
...
</div>
@Component(...)
export class AppComponent {
updateScroll(scrollOne: HTMLElement, scrollTwo: HTMLElement){
// do logic and set
scrollTwo.scrollLeft = scrollOne.scrollLeft;
}
}