首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动画过程中的mat-sidenav滚动条可见性

动画过程中的mat-sidenav滚动条可见性
EN

Stack Overflow用户
提问于 2019-01-04 15:48:06
回答 2查看 1.3K关注 0票数 1

我正在与mat-sidenav合作,并设法设置了一个非常基本的,将坐在左侧,打开和关闭足以显示垫的图标。这部分很好,可以正常工作。我已经包含了通过css打开和关闭的幻灯片动画。现在的问题是在动画过程中滚动条的可见性。我理解为什么滚动存在,因为这是因为我使用ngif来隐藏垫图标之后的内容,所以当它处于部分关闭状态时,图标的字母/描述不会在end...this上偷看,然后插入通过切换功能发生的动画-我完全可以使用这里存在的滚动条。我的问题是使滚动条不可见,但仍然存在;原因是菜单也可以根据权限垂直增长,我希望用户能够滚动,即使他们看不到滚动条。现在,这并不是我在研究后看到的一个新问题--然而,我不明白如何将我在下面的链接中读到的东西应用到我的问题中。再加上我在css属性覆盖中观察到的一些东西,我认为这是因为我没有正确使用css作用域;这就是我的问题所在。

下面是到流行解决方案的链接:Hide scroll bar, but while still being able to scroll

检查元素时,我发现mat-drawer- not container具有overflow属性,并且我发现我通过css设置的任何属性都没有采用。下面是一个非常精简的用于调试的html版本,也是我正在使用的,试图让它工作:

代码语言:javascript
复制
<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作为父元素/wrapper,使用.mat-drawer- the container作为子元素/内部元素:

代码语言:javascript
复制
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-折叠器-内部容器保持不变-这是我在检查元素后看到的内容:

代码语言:javascript
复制
.mat-drawer-inner-container {
    width: 100%;
    height: 100%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

如果我将浏览器中的溢出元素更改为隐藏,只是为了看看是否需要-它确实删除了滚动条(不是我想要的,但这是一个很好的测试方法)...which应该意味着我应用css属性的方式是不正确的。

是的,我对前端来说是个新手。渴望学习,虽然它需要是因为我在项目中工作。

有什么建议吗?

编辑:请求的截图。The inspected element

css:

代码语言:javascript
复制
.mat-drawer-inner-container {
    overflow-x: hidden !important;
}
EN

回答 2

Stack Overflow用户

发布于 2021-09-20 08:51:10

您的CSS可以,只需将其添加到style.css文件中

甚至尝试一下:

代码语言:javascript
复制
 *{ overflow: hidden !important; } 

style.scss

票数 1
EN

Stack Overflow用户

发布于 2021-10-19 07:36:52

如果有人有同样的问题,这对我很有效。

代码语言:javascript
复制
::ng-deep .mat-drawer-inner-container {
     overflow: visible!important;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54034933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档