У меня есть две матовые таблицы рядом в горизонтальной плоскости
одна слева предназначена для материализации "закрепленных" столбцов, вторая справа прокручивается как по вертикали, так и по горизонтали.
Теперь я хочу синхронизировать прокрутку обеих таблиц, так как слева не будет полосы прокрутки, а справа -
. Я хочу, чтобы прокрутка правой всегда применялась автоматическислева.
оба мужчины будут выглядеть как одна таблица с колонками слева.
Я спрашиваю об этом здесь, потому что я нашел только решения, которые очень "jquery"например: Синхронизированная прокрутка с использованием jQuery?
, и до сих пор я стремился быть настолько же «стандартным Google», насколько это возможно в моем проекте angular 6.мой код очень ECMAScript и ориентирован на угловой, у меня мало или нет jquery.
, и я беспокоюсь о производительности, и любой код, который я использую, в конечном итоге не выдерживает и в конечном итоге разрушает иллюзию.* действительно ли jquery - лучший способ сделать это?
ОБНОВЛЕНИЕ 1:
пока у меня есть (DOM):
<!--1-->
<mat-table #table1 [dataSource]="dataSource" matSort class="pinned catching-scrolling">
<--lots of dom...-->
<!--2-->
<mat-table #table2 [dataSource]="dataSource" matSort class="unpinned" (scroll)="syncScroll(table2)">
<--more dom...-->
ts:
syncScroll(div){
const d1 = this.element.nativeElement.querySelector('.catching-scrolling');
console.log(d1 , div);
d1.scrollTop = div.scrollTop;
}
теперь все это: #table2 (scroll)="syncScroll(table2)"
, (scroll)="syncScroll(element)"
, (scroll)="syncScroll($event)"
довольно хороши, поскольку они отправляют обратно элементы, с которыми я могу теоретически синхронизироваться, но я просто хочу очистить это так, чтобы мой дом былуже отправляю нужную вещь, из которой я могу указать на scrollTop или лайки для обоих.
сейчас у меня есть разные элементы на обоих.
ОБНОВЛЕНИЕ 2
(scroll)="syncScroll($event.srcElement)
отправляет обратно правильный элемент, и это обеспечивает минимальный код, при котором полосы прокрутки фактически синхронизируются:)
Теперь остается вопрос: является ли использование jquery (даже в этой манере Angular-ish) самым быстрым и наиболее оптимизированным решением?