Разрешить классу "реагирующий на таблицу" (scroll) по-прежнему работать с фиксированным элементом - PullRequest
0 голосов
/ 30 мая 2019

Я использую Angular 6 для создания таблицы.В настоящее время заголовок таблицы настроен так, чтобы он оставался зафиксированным в верхней части страницы, если пользователь прокручивает ее.Однако после применения моего «липкого» класса, у которого этот заголовок зафиксирован сверху, я, похоже, теряю функциональность начальной загрузки «реагирующий на таблицу» и больше не могу прокручивать по горизонтали.Как я могу оставить это включенным, чтобы заголовок был зафиксирован вертикально вверх, но при этом прокручивался горизонтально вместе с остальной частью таблицы?

мой класс "липких" css:

.sticky{
    position: fixed;
    top: 0;
    overflow: hidden;
    z-index: 12;
    background-color: #fff;
    width:92%;
    padding-bottom: 15px;
    padding-right:20px!important;
    border-bottom: 1px solid #cccccc;
    border-right: 1px solid #cccccc;
    -webkit-box-shadow-bottom:0px 1px 6px grey;
    -moz-box-shadow-bottom:0px 1px 6px grey;
    box-shadow:0px 1px 3px #cccccc;    
    overflow-x: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
}

(после применения элементов в конце липкого класса я могу заставить заголовок таблицы все еще прокручиваться, но он не будет прикреплен к остальной части таблицы ниже)

Мой html:

<div class="table-responsive">
    <table id="tabletop" class="table">
        <thead>
            <tr #stickyMenu [class.sticky]="sticky">
                <th scope="col" id="th0">Monitoring Point</th>
                <th scope="col" id="th1">Network Health<br><small id="more_detail">(Click icon to see more detail)</small>
                </th>
                <th scope="col" id="th2">Active Alerts</th>
                <th scope="col" id="th3">Velocity (ft/s)</th>
                <th scope="col" id="th4">Water Temperature (°F)</th>
                <th scope="col" id="th5">Depth Readings (in)</th>
            </tr>
        </thead>
    </table>
    <div class="table-responsive"> -->
        <table id="tablebottom" class="table">
            <tbody >
                <tr *ngFor="let item of monitoring_points">
                    <app-sensor-summary [mp]="item"></app-sensor-summary>
                </tr>
            </tbody>
        </table>
    </div>
</div>

В моем компоненте я использую его, чтобы определить, где находится прокрутка по отношению к окну, и применяю класс, когда пользователь прокручивает мимо него:

@ViewChild("stickyMenu", {read: ElementRef}) tr: ElementRef;


ngAfterViewInit(){
  this.elementPosition = this.tr.nativeElement.getBoundingClientRect().top;
}

@HostListener('window:scroll', ['$event'])
  handleScroll(elementPosition) {
    this.sticky = (window.pageYOffset >= this.elementPosition);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...