table同步滚动


同步滚动两table

  public listenerScroll(): void {
    if (this.isListened) {
      return;
    }
    const e = document.querySelectorAll('.ant-table-body');
    const left = e[0];// 左侧tabledom
    const right = e[1];// 右侧tabledom
    if (left?.scrollHeight && left.clientHeight && right?.scrollHeight && right.clientHeight) {
      let isScrollLeft = true;// 只监听其中一个table,防止性能消耗
      left.addEventListener('mouseover', () => {
        isScrollLeft = false;
        left.addEventListener('scroll', () => {
          if (!isScrollLeft) {
            right.scrollTop = left.scrollTop;
            right.scrollLeft = left.scrollLeft;
          }
        });
      });
      right.addEventListener('mouseover', () => {
        isScrollLeft = true;
        right.addEventListener('scroll', () => {
          if (isScrollLeft) {
            left.scrollTop = right.scrollTop;
            left.scrollLeft = right.scrollLeft;
          }
        });
      });
    }
    this.isListened = true;
  }

相关