ExtJs6 响应式布局

ExtJs6实现布局响应式

目前我想实现两个效果

1.屏幕分辨率低的时候,红色部分移到下面(north->south)

2.行列布局,分辨率大的时候显示一行4个,中等的时候显示一行3个,小的时候显示一行2个

 

 

效果如图所示

代码如下

var centerPanel = Ext.create('Ext.panel.Panel', {region : 'center',autoScroll : true,title : 'Container Panel',layout : {type : 'column'},items : [{title : 'Item 1',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 2',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 3',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 4',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 5',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 6',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 7',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 8',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 9',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 10',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 11',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 12',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 13',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}, {title : 'Item 14',height : 100,border : true,columnWidth : .25,// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {columnWidth : .25},'width < 1000' : {columnWidth : .33},'width < 800' : {columnWidth : .5}}}]});new Ext.Viewport(Ext.create('Ext.Panel', {layout : 'border',border : true,autoScroll : true,items : [centerPanel, {title : 'Some Title',region : 'north',height : 300,bodyStyle : 'background-color:red',border : true,xtype : 'panel',title : 'Some SomeSomeSomeSomeSome',// 启用响应式布局插件plugins : {responsive : true},// 响应式布局配置responsiveConfig : {'width >= 1000' : {region : 'north',height : 300},'width < 1000' : {region : 'south',height : 200}}}]}));

 

 

关键代码:

// 启用响应式布局插件
plugins: {responsive: true
},
// 响应式布局配置
responsiveConfig: {'width >= 1000': {columnWidth: .25},'width < 1000': {columnWidth: .33},'width < 800': {columnWidth: .5}
}

extjs6 为了性能,默认是不开启响应式布局的,所以需要在plugins中启用,同时配置响应的规则

规则


在responsiveConfig对象中的每一个键,或规则,只是一个简单的javascript表达式。以下变量可用来作为responsiveConfig对象的规则:
 

  •     ‘landscape’ - 如果设备方向是竖向的,则为true (在桌面设备总是为true)
  •     ‘portrait’ - 如果设备方向是横向的,则为true(在桌面设备总是为false)
  •     ‘tall’ - 无论任何设备,只要宽度小于高度,则为true
  •     ‘wide’ - 无论任何设备,只要宽带大于高度,则为true
  •     ‘width’ - viewport的宽度
  •     height’ - viewport的高度

可以以不同的方式来组合这些变量来创建复杂的响应规则,例如,以下responsiveConfig会在viewport宽度少于768像素且高度大于它的宽度时隐藏组件:

responsiveConfig: {'width < 768 && tall': {visible: true},'width >= 768': {visible: false}
}

 

responsiveConfig概述

要让Ext JS 5支持新的平板电脑,需要使用“responsiveConfig”,一个强大的新功能,可以让应用程序根据屏幕大小和方向进行动态响应。使用以下两个类其中之一就可以启用responsiveConfig:
 

  • Ext.plugin.Responsive: 为Ext.Component添加响应能力
  • Ext.mixin.Responsive: 为其他类添加响应能力

 

为什么用column布局而不是用hbox布局?

Column Layout因为是 float: left 浮动的机制,所以会自动换行;而HBox Layout需要借助其它比如Anchor 布局、行布局或者垂直方向盒子布局才能达到分行的效果。

Column布局中通过columnWidth属性达到响应式的目的,而HBox中无法修改属性换行,除非重新layout

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/252753.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

用GoldWave剪辑编辑视频中的音频文件

现在无论是学生还是上班族&#xff0c;都会上一些网课学习&#xff0c;学生上网课加强巩固自己要考试的知识。上班上网课拓宽自己的知识面&#xff0c;增强专业技能。小编最近也报了一个网课&#xff0c;学习英语口语。 在上网课的时候&#xff0c;通常都会把网课给录下来&…

如何用GoldWave交叉淡化两首音乐?

音频编辑的交叉淡入淡出功能&#xff0c;是音频编辑的基础功能&#xff0c;但如淡出能让音频的开始与结束显得不那么突兀&#xff0c;也能让音频之间的过度更加流畅。 GoldWave中文版正可以让前一段音频淡出&#xff0c;而另一端音频淡入&#xff0c;这样声音既没有中断&#…

关于GoldWave给Vegas视频添加音频叠加的教程分享

有时我们会用Vegas为某段影片配音&#xff0c;我们要怎么把配音和背景声融合在一起呢&#xff1f;想必马上会有人反应过来&#xff1a;让配音和背景声分别置于两条轨道上就好了。这当然是一个相当好的方式。 可是&#xff0c;如果我想要把两段音频合成一个文件&#xff0c;方便…

巧用GoldWave预设,设置音频效果模板!

GoldWave是一款小巧、功能丰富的音频编辑软件。它的功能丰富体现在声音编辑、录制、播放、音频效果设置以及转换各种音频格式和支持丰富的音频格式&#xff0c;主要包括WAV、IFF、MP3、OGG以及DWD等数十种音频格式。除此之外&#xff0c;它还是一款非常友好的音频编辑工具&…

[音视媒体制作]小巧的音频处理工具 GoldWave 进阶教程

( http://vod.sjtu.edu.cn/help/Article_Show.asp?ArticleID1065&ArticlePage1 …… …… http://vod.sjtu.edu.cn/help/Article_Show.asp?ArticleID1065&ArticlePage8 ) &#xff3b; 作者&#xff1a;cl1003 转贴自&#xff1a;winzheng.com &#xff3d; G…

使用GoldWave制作“淡入/淡出”效果

播放音乐时&#xff0c;我们总不太喜欢音乐的突然进入&#xff0c;由远及近的效果较为舒适。可以使用音频编辑软件——GoldWave&#xff0c;对音频文件添加“淡出/淡入”音效。 此篇内容&#xff0c;小编将简单介绍使用GoldWave&#xff0c;如何在音频“开头/结尾”分别加入“…

CSS-盒子模型

前言&#xff1a; 当对一个文档进行布局&#xff08;layout&#xff09;的时候&#xff0c;浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型&#xff08;CSS basic box model&#xff09;&#xff0c;将所有元素表示为一个个矩形的盒子&#xff08;box&#xff09;。CSS 决…

盒子模型

1.常见的块级元素均具有盒子模型的特征&#xff1b; 2. div{border:2px solid red; } 等价于&#xff1a; div{border-width:2px;border-style:solid;border-color:red; } 其中&#xff1a; 1&#xff09;、border-style&#xff08;边框样式&#xff09;常见样式有&#xff…

CSS:盒子模型

盒子模型 盒子模型属性 网页中的所有元素都可以看成一个个的盒子&#xff0c;盒子模型由以下四部分组成&#xff1a;外边距、边框、内边距、内容 CSS就是控制盒子的尺寸、位置等&#xff0c;来实现网页的布局 <style type"text/css"> .box{margin: 15px;bo…

CC攻击常见类型集合

什么是CC攻击&#xff1f; CC攻击是攻击者借助代理服务器或者大量肉鸡模拟多个用户不断访问目标网站&#xff0c;生成指向受害主机的合法请求&#xff0c;实现DDoS和伪装攻击。 因需处理大量请求及后台数据库查询动作&#xff0c;服务器CPU、内存、带宽等资源长时间被占用浪费…

初识弹性盒子

1.介绍 弹性盒子就是当页面需要适应不同的尺寸以及设备类型时确保元素布局恰当的布局方式&#xff0c;未来还有网格布局但目前兼容性不好 display:grid 2.移动端的补充 再次强调 在移动端所有有尺寸的地方推荐单位 rem meta不能忘记写 calc&#xff08;&#xff09; 比如定义75…

烧写linux系统到盒子,在Linux命令行中将礼品包装在盒子中

春节&#xff0c;圣诞&#xff0c;元旦&#xff0c;每个节日&#xff0c;每个Linux终端用户都应该得到一份小礼物。不管你是庆祝春节&#xff0c;还是另一个节日。我收集到的几个Linux命令行工具&#xff0c;供您欣赏并与朋友共享。让我们一起来找点乐子&#xff0c;给这个寒冷…

CSS盒子

CSS盒子 盒子介绍 盒子必须是块元素 使用前需要添加 * {margin: 0;padding: 0;box-sizing: border-box; }让盒子根合理 盒子主要包括:盒子宽高,盒子边框,盒子内边距 ,盒子外边距,盒子阴影, 盒子圆角 先来看一个案例 <!DOCTYPE html> <html lang"en"&…

flex弹性盒子布局

flex是flexible box 的缩写&#xff0c;即为“弹性布局”&#xff0c;用来为盒子模型提供最大的灵活性&#xff0c;任何容器都可以指定为flex布局&#xff1b; flex容器&#xff1a;采用 flex 布局的元素&#xff0c;即容器&#xff1b; flex项目&#xff1a;采用 flex 布局的…

Wireshark网络抓包工具(cap文件查看器) v2.6.2 绿色便携版

Wireshark 是一款免费开源的网络嗅探抓包工具&#xff0c;网络封包分析软件的功能是撷取网络封包&#xff0c;并尽可能显示出最为详细的网络封包资料。Wireshark 网络抓包工具使用WinPCAP作为接口&#xff0c;直接与网卡进行数据报文交换&#xff0c;可以实时检测网络通讯数据&…

一款二进制文件查看器

由于使用的是Notepad 64位版本&#xff0c;在网上找了很多二进制查看插件HexEditor.dll要么是32位不兼容&#xff0c;要么是出现除零的错误&#xff08;以前找到过一次支持Notepad 64位版本的HexEditor.dll&#xff0c;这次死活找不到啦&#xff09;。 本人仅仅是看看二进制文件…

windows 照片查看器无法打开图片 因为照片查看器不支持此文件格式,或者你没有照片查看器的最新更新

目录 问题​ 1、排查磁盘空间和内存 2、扫描系统文件进行修复 问题 windows 照片查看器无法打开图片&#xff0c;显示空白或提示&#xff1a;windows 照片查看器无法打开图片&#xff0c;因为照片查看器不支持此文件格式&#xff0c;或者你没有照片查看器的最新更新。 1、排…

二进制文件(.bin)查看

今天遇到一个问题&#xff1a;调用密码机接口生成了128MB的二进制数据&#xff0c;想打开查看是否有具体的格式或者添加其他的内容&#xff1b; 最简单的方式是通过notepad插件直接查看&#xff1b;两种方式安装插件&#xff1a; 第一种安装方式&#xff1a;直接插件进行安装…

好用的Bin文件查看器,J-flash

工作中&#xff0c;很多地方用到Bin文件&#xff0c;如编译完成后的固件和从MCU的Flash读出来的文件&#xff0c;这时候一个好的Bin文件查看器至关重要。经常我们用STM32自带的STM32 ST-LINK Utility可以直接查看&#xff0c;但是一行只能显示16个字节&#xff0c;为了显示更多…

3d模型轻量级查看器-Autodesk FBX Review

本人在百度查找轻量级模型查看器&#xff0c;如supermodel&#xff0c;meshview都有一定缺点&#xff0c;如supermodel无法在选择模型打开方式的时候进行打开&#xff0c;只能通过软件自带的openmodel打开&#xff0c;但打开之后的obj模型没有材质&#xff0c;所以模型的颜色很…