angular – 根据屏幕大小更改md-grid-list的布局或cols值
我正在使用
angular material 2的网格列表.
这是plunker 在这里,我定义了一个包含三列的网格列表,并且有三个切片(在一行中显示为三列). 我想改变瓷砖的布局方向,如果屏幕尺寸在某一点缩小,那么所有的瓷砖应该在另一个下面的第一列中,这是cols参数值的某种变化为1.它怎么可能?灵活布局是否可行?
仅适用于div:
要仅将列更改应用于div,请将div添加到div,例如#gridView.使用此ref来获取包含grid-list的div的宽度.然后我们可以在div宽度改变时使用flex-layout中的[fxShow],并根据div的大小设置col编号. HTML: <div style="background: skyblue" #gridView [ngStyle]="{ 'width.px': divSize }" [fxShow]="setColNum(gridView.style.width)"> <md-grid-list [cols]="columnNum" rowHeight="100px"> <md-grid-tile> A </md-grid-tile> <md-grid-tile> B </md-grid-tile> <md-grid-tile> C </md-grid-tile> </md-grid-list> </div> TS: @ViewChild('gridView') gridView; columnNum = 3; divSize = 900; setColNum(div){ // console.log(div); if(this.gridView.nativeElement.offsetWidth < 400){ this.columnNum = 1; } if(this.gridView.nativeElement.offsetWidth >= 400 && this.gridView.nativeElement.offsetWidth < 800){ this.columnNum = 2; } if(this.gridView.nativeElement.offsetWidth >= 800){ this.columnNum = 3; } } demo 完整视口: 是的,可以使用flex-layout.在我的测试中,我发现fxLayout api与md-grid-list不兼容,所以作为替代方案,我使用它的MediaChange,ObservableMedia功能来检测屏幕大小并根据它设置列号. Edited Plunker,对于屏幕尺寸sm和xs,col尺寸更改为2和1. HTML: <md-grid-list [cols]="columnNum" rowHeight="100px"> <md-grid-tile> A </md-grid-tile> <md-grid-tile> B </md-grid-tile> <md-grid-tile> C </md-grid-tile> </md-grid-list> component.ts: columnNum = 0; constructor(media: ObservableMedia) { media.asObservable() .subscribe((change: MediaChange) => { // alert(change.mqAlias); console.log(change.mqAlias); if(change.mqAlias == 'xs'){ this.columnNum = 1; } else if(change.mqAlias == 'sm'){ this.columnNum = 2; } else{ this.columnNum = 3; } }); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- caliburn.micro – Caliburn Micro:主shell VM中的“child
- bash – “grep -c”与“wc -l”
- BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉
- 使用Scala 2.10隐式类转换为“内置”标准库类
- angularjs – 如何在角度js中设置XSRF保护?
- bash – 滚动一个shell脚本输出,而不用管道输入
- angular 一
- angular2 – Angular 2组件@Input不工作
- WebService大讲堂之Axis2(1):用POJO实现0配置的WebServi
- ng-init 指令初始化 AngularJS 应用程序变量并支持html5
- twitter-bootstrap – 如何使用Bower保持Twitter
- angularjs – 依赖注入不在angular / browserify
- 如何在shell脚本中静默禁用xtrace?
- WebService的两种方式SOAP和REST比较
- angular – 在多个命名路由器插座的情况下获取当
- unix terminal/console/curses 工具介绍之一
- scala – 组合序列元素的最简洁方法
- SegmentFault 技术周刊 Vol.17 - 听说你还没用上
- arm – 依赖于平台的Docker镜像 – 如何操作?
- .NET 的 WCF 和 WebService 有什么区别?(转载)