javascript 在角度材料设计中调整 sidenav 的大小栏。

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30058517/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 11:35:42  来源:igfitidea点击:

resize bar for sidenav in angular material design.

javascriptcssangularjsangularjs-directiveangular-material

提问by user4321

Is there a directive in angular material to resize sidenav?

角度材料中是否有调整 sidenav 大小的指令?

There is a sidenav which shows list of clients and the right pane has the details of the client. I am trying to add a resize bar between them.

有一个 sidenav 显示客户端列表,右侧窗格包含客户端的详细信息。我正在尝试在它们之间添加一个调整大小栏。

I used the following

我使用了以下

http://plnkr.co/edit/Zi2f0EPxmtEUmdoFR63B?p=preview

http://plnkr.co/edit/Zi2f0EPxmtEUmdoFR63B?p=preview

which i found in the following

我在下面找到的

Angular JS resizable div directive

Angular JS 可调整大小的 div 指令

I tried following the above plunker example but the sidenav never resized. The right pane moves right but the left pane remain unchanged.

我尝试按照上面的 plunker 示例进行操作,但 sidenav 从未调整大小。右窗格向右移动,但左窗格保持不变。

<div layout="row" flex>

        <md-sidenav layout="column" class="md-sidenav-left md-whiteframe-z2" id="sidenav" md-component-id="left" md-is-locked-open="$mdMedia('gt-md')">
            <md-list class="sideBar">
                <md-item ng-repeat="client in data">
                    <md-item-content>
                        <md-button ng-click="selectClient(client);" >

                                {{client.name}} 
                        </md-button>
                    </md-item-content>
                </md-item>
            </md-list>
        </md-sidenav>

        <div id="sidebar-resizer" 
        resizer="vertical" 
        resizer-width="6" 
        resizer-left="#sidenav" 
        resizer-right="#primary-col"
        resizer-max="400">
    </div>
    <!-- viewport column -->

    <div layout="column" flex class="content-wrapper" id="primary-col">
        <div id="viewPort" ng-view></div>
    </div>
 </div> 

Thank you

谢谢

回答by user4321

Found a snippet that can help add resize where ever required and this works well with the Angular Material Design.

找到了一个片段,可以帮助在需要的地方添加调整大小,这与 Angular Material Design 配合得很好。

Angularjs version used 1.3.15 and Angular material design version Used is 0.9.8..

Angularjs 版本使用 1.3.15 和 Angular material design 版本使用是 0.9.8..

Tested in IE10+ and chrome.

在 IE10+ 和 chrome 中测试。

Here is the Git hub link

这是 Git 中心链接

https://github.com/Reklino/angular-resizable

https://github.com/Reklino/angular-resizable

And here is the working codepen example

这是有效的 codepen 示例

http://codepen.io/Reklino/pen/raRaXq

http://codepen.io/Reklino/pen/raRaXq

PS-I had issues with the r-flex so I set it to false.It worked fine. 

回答by nitin

'width', 'max-width' and 'min-width' all are set to 304px for md-sidenav inside angular-material.css. You need to overwrite max & min width values in yr custom.css

对于 angular-material.css 中的 md-sidenav,'width'、'max-width' 和 'min-width' 都设置为 304px。您需要覆盖 yr custom.css 中的最大和最小宽度值

material.css

材质.css

回答by dhwang

To answer @LeoLozes: It took me a while (and a coffee break) to figure out the solution. You basically have to wrap the sidenav with another div that is resizable like this

回答@LeoLozes:我花了一段时间(和喝咖啡休息时间)才找到解决方案。您基本上必须用另一个可调整大小的 div 包裹 sidenav

<div resizable r-directions="['left']" r-flex="false">
    <md-sidenav layout="row" class="md-sidenav-right md-whiteframe-2dp" ...>
    </md-sidenav>
</div>