Видимость полосы прокрутки mat-sidenav во время анимации - PullRequest
0 голосов
/ 04 января 2019

Я работаю с mat-sidenav, и мне удалось настроить очень простой, который будет сидеть с левой стороны, открываться и закрываться ровно настолько, чтобы показывать иконки матов.Эта часть в порядке и работает, как ожидалось.Я включил слайд анимации через CSS для открытия и закрытия.Теперь проблема заключается в видимости полосы прокрутки во время анимации.Я понимаю, почему этот свиток существует, потому что я использую ngif, чтобы скрыть содержимое после значка mat, чтобы, когда он был в частично закрытом состоянии, буквы / описание значка не выглядели в конце ...вставлен, поскольку анимация происходит с помощью функции переключения - у меня все в порядке с полосой прокрутки, существующей здесь.Моя проблема в том, чтобы сделать полосу прокрутки невидимой, но все еще там;причина в том, что меню также может увеличиваться по вертикали в зависимости от разрешений, и я хотел бы, чтобы пользователь мог прокручивать его, даже если он не видит полосу прокрутки.Теперь это не новая проблема, которую я увидел после исследования, однако я не понимаю, как применить то, что я прочитал в приведенной ниже ссылке, к моей проблеме.Это наряду с тем, что я наблюдал при переопределении атрибута css, которое, как я полагаю, связано с тем, что я не использую css scoping должным образом;составляет мою проблему.

Вот ссылка на популярное решение: Скрыть полосу прокрутки, но при этом все еще можно прокручивать

Осматривая элемент, я нахожу мат-ящик-внутренний-В контейнере есть свойство overflow, и я обнаружил, что ни одно из свойств, которые я установил через css, не принимает.Ниже приведена очень упрощенная версия html для отладки, с которой я работаю, чтобы попытаться заставить ее работать:

<mat-sidenav-container fullscreen>
   <mat-sidenav #sidenav mode="side" class="navbarComponent" [ngStyle]="{ 'width.em': sidenavWidth }" opened="true">

   <mat-nav-list>

      <div id="menu" class="custom-selector">
        <mat-list-item (click)="toggle()">
         <mat-icon mat-list-icon class="noselect">menu</mat-icon>
         </mat-list-item>

         <div *ngIf="sidenavWidth > 6" class="sidenav-item noselect" style="background-color:#d56a00; padding:20px 30px 20px 10px; line-height:0px; text-align:left;">
          <table width="100%">
            <tr>
              <td><img src="assets/images/avatar.png" width="100" height="100"></td>
              <td id="avatar-table" style="color:#fff; vertical-align:top; padding:10px; line-height:15px;" class="col text-truncate"><p><b>Some name</b><br/>
                   Some other text</p>
            </tr>
          </table>
        </div>

         Will use ngfor to generate all the menus. This one is just one and the Html is just a menu with hardcoded values
        <app-menu-list-item [sidenavWidth]="sidenavWidth" [subMenuEnabled]="subMenuEnabled"></app-menu-list-item>

      </div>




     </mat-nav-list>

   </mat-sidenav>


</mat-sidenav-container>

А вот и я попробовал css.Использовали в основном именно то, что было в ссылке для решения, но, насколько я понимаю, вам нужно обернуть элемент, отвечающий за прокрутку, в другой элемент и сделать его со скрытым переполнением и относительным положением.Я попытался сделать это, используя mat-sidenav в качестве parent / wrapper и .mat-box-inner-container в качестве дочернего / внутреннего элемента:

html, body {
    height: 99%;
    border: 1px solid red;
    overflow:hidden;
}

mat-sidenav {
    height: 100%;
    width: 100%;
    border: 1px solid green;
    overflow: hidden;
    position: relative;
}

.mat-drawer-inner-container {
    position: absolute;
    top: 0px;
    bottom: 0px;
    left: 0px;
    right: -15px;
    border: 1px solid blue;
    overflow: auto;
}

Теперь для последней части ... давайте предположим, что яполучил вышеупомянутое правильно.CSS не берет.Это из-за прицела css?.Mat-box-inner-container остается прежним - это то, что я вижу после проверки элемента:

.mat-drawer-inner-container {
    width: 100%;
    height: 100%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

Если я изменю элемент переполнения в браузере, скажем, скрытый, просто чтобы посмотреть, если онберет - она ​​удаляет полосу прокрутки (не то, что я хочу, а хороший способ проверить) ... что должно означать, что способ применения моих атрибутов CSS неверен.

Да, я новичок в веб-интерфейсе.Желая учиться, хотя это должно быть так, как я работаю над проектом.

Любой совет?

РЕДАКТИРОВАТЬ: Запрошенный скриншот. проверяемый элемент

css:

.mat-drawer-inner-container {
    overflow-x: hidden !important;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...