【翻译】Ext JS最新技巧——2016-3-4
原文:Top Support Tips
Kevin Cassidy:Grid水印
Ext JS的Grid是一个便于在布局中显示信息的伟大工具。有些用户可能会希望将这些信息打印为会议资料或宣传材料,而且会希望在打印的时候,能添加水印以便进行版权保护、保密或作为品牌的一种方式。
这个很容易实现,只要在Ext JS的Grid中为它指定一个样式就行了,而这只需要一些简单的CSS技巧。
实现这种效果的关键是修改单元格的样式,并在Grid中插入不透明且不会遮盖Grid内容的背景。
要做到这一点,首先是创建一个新的样式类,例如,样式类的名称为“watermark”,并将它应用到Grid的cls配置项:
cls: ‘watermark’
现在可以开始定义CSS来创建水印效果了。
默认情况下,Grid的单元格的背景是白颜色,第一步要做的就是修改单元格的背景,让它是透明的。要实现这个,要先定义一个包含“watermark”类的CSS选择权,以便让Grid的单元格透明:
.watermark .x-grid-item {
background: transparent !important;
}
下一步就是创建水印:
.watermark .x-grid-body:before {
content: ' ';
display: block;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
opacity: 0.1;
background: url(http://url.to.watermark.jpg) center !important;
background-size: cover !important;
}
上门的样式会在Grid的主体前插入内容,并将插入内容完全覆盖Grid的内容。元素中的内容是空的,且应用了背景图片,背景突破被设置为居中显示,且完全填充整个元素。上述的不透明度被设置为了0.1(10%),这个可根据需要自行调整。
注意:由于浏览器的不同,以上的不透明度和背景图片属性(尤其是旧版本的IE)可能需要根据需要进行相应的修改。要打印背景突破可能还需要手动来调整打印选项。
Tristan Lee:类定义中的实例
时不时会有用户报告尝试去创建一个组件的实例时,会在创建附加的实例出现不知名的错误。为什么第一个实例能工作,而第二个不行呢?下面先来看看一种创建Grid比较常见的情况:
Ext.define('SimpsonGrid', {
extend: 'Ext.grid.Panel',
alias: 'widget.simpsongrid',
width: 400,
height: 400,
store: {
type: 'users'
},
columns: [{
text: 'First Name',
dataIndex: 'firstname'
}, {
text: 'Last Name',
dataIndex: 'lastname'
}],
plugins: [Ext.create('Ext.grid.plugin.RowExpander', {
rowBodyTpl: '<div>Row content</div>'
})]
});
在这里,定义了一个简单的Grid,在Grid中,使用了RowExpand插件在第二行内显示内容。这是常见的用来显示特定记录的额外信息的方式。假设应用程序需要在不同的视图内使用该Grid的不同实例来显示数据,这就会出现问题。
RowExpander类的一个实例被应用到了SimpsonGrid类的原型,这意味着所有的SimpsonGrid类实例将会引用相同的插件实例。当尝试去展开第一个Gird实例的行主体的时候就会出现问题,这时,可以看到它应用到了第二实例。
要避免出现这类问题,需要使用一个配置对象来让框架处理实例化:
plugins: [{
ptype: 'rowexpander',
rowBodyTpl: '<div>Row content</div>'
}]
现在,每一个Grid 的实例都将拥有自己的插件实例。如果要查看共享插件实例的所出现的问题,可以查看这个https://fiddle.sencha.com/#fiddle/15fk‘>示例。
Fred Moseley:使用Sencha Cmd编译来创建生成
与大多数应用程序一样,你会使用sencha app build来编译应用程序的脚本。虽然这已经足够应付绝大多数的情况,但有时候还是需要对编译实现控制以及希望在标准处理过程外做点东西。
例如,在一个工作区内有多个应用程序,而你希望创建一个单一的app.js文件来包含所有应用程序所需的文件。又或者,你希望为这些应用程序创建一个自定义的只包含应用程序所需的框架类的框架。这时候,就可以使用sencha编译。
编译应用程序代码
以下响应文件将会为应用程序创建一个最优的生成myapp.js,且只包含应用程序所需的框架类:
compile
#comma delimited list of paths to the app folders of the
#applications you want to use to create custom framework.js
#also include any other paths you include in your applications classpath in app.json
-classpath=app,app.js
#transitive/recursive union with the classes
#required by your application
union
-r
-namespace=MyAppName
and
#remove development mode preprocessor directives/warnings
-debug=false
concat
#Compresses the source file using the YUI
-yui
#Strips comments from the output file, but preserves whitespace
-strip
#output filename
-out=myapp.js
可以以上这些命令来创建响应文件,假如文件名为compile.cfg,则可以使用以下命令来执行响应文件:
sencha @compile.cfg
在myapp.js文件中将包含所有应用程序所需的类。
响应文件的相关信息可查看《http://docs.sencha.com/cmd/6.x/advanced_cmd/cmd_advanced.html#Response_Files‘>Advanced Sencha Cmd guide》。
编译所需的框架类
使用exclude选项,就可以方便的通过编辑响应文件来指定只包含应用程序的源代码还是只有框架。
下面将创建一个只包含运行应用程序所需框架文件的名为framework.js的文件:
compile
-classpath=app,app.js
union
-r
-namespace=MyAppName
and
#exclude the application namespace
exclude
-namespace=MyAppName
and
-debug=false
concat
-yui
-strip
-out=framework.js
【翻译】Ext JS最新技巧——2016-3-4的更多相关文章
- 【翻译】Ext JS最新技巧——2015-1-2
原文:http://www.sencha.com/blog/top-support-tips-january-2015?mkt_tok=3RkMMJWWfF9wsRolvqvIZKXonjHpfsX7 ...
- 【翻译】Ext JS最新技巧——2014-10-30
原文:Top Support Tips Greg Barry:Ext JS 5的ExtraParams Ext JS 4同意用户直接将extraParams加入到一个链接,相似例如以下代码: Ext. ...
- 【翻译】Ext JS最新技巧——2015-10-21
原文:Top Support Tips Kevin Cassidy:全宽度的字段错误信息 有考虑过让验证信息显示在表单字段的下面(msgTarget:'under'),但最后发现验证信息被压缩显示了吗 ...
- 【翻译】Ext JS最新技巧——2015-8-11
原文:Top Support Tips Seth Lemmons:使用棒极了的Awesome Font Ext JS 6附带了一个新的海卫一主题,可以使用Font Awesome字体作为背景图像的图标 ...
- 【翻译】Ext JS最新技巧——2014-9-10
原文:Top Support Tips Greg Barry:删除网格单元格的焦点 在Ext JS 5.0.1,添加了一些与可访问性和支持ARIA有关的显著改进.虽然鼓励使用这些新增功能,但默认样式可 ...
- 【翻译】Ext JS最新技巧——2014-8-13
原文:Top Support Tips Greg Barry:新的框架. 新的文档类型(Doctype) 在Ext JS 5,只支持IE8+,因此不再古力用户使用严格的HTML文档类型.现在,推荐使用 ...
- 【翻译】Ext JS最新技巧
原文:Top Support Tips Mitchell Simoens:控制滚动指示器的自动隐藏 Sencha Touch有一个跨平台的,在所有平台看起来和工作效果都一样的滚动条.两条轴(x和y,水 ...
- 【翻译】Ext JS最新技巧——2014-5-12
原文:mkt_tok=3RkMMJWWfF9wsRoluazJZKXonjHpfsX77OQlXK%2B%2FlMI%2F0ER3fOvrPUfGjI4AT8NjI%2BSLDwEYGJlv6SgFS ...
- 【转载】《Ext JS 4 First Look》翻译之一:新特性
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:^_^肥仔John 原文地址:http://www.cnblogs. ...
随机推荐
- 阿里Java研发工程师实习面经
十分幸运 拿到阿里云的offer,感谢周围无数人对我的支持和鼓励,所以写篇面经希望可以帮助大家. 面试中,运气占很大一部分的,所以你们若是没有通过,一定不要气馁,继续加油. 每个努力的人 都值得钦佩, ...
- Java内存模型之重排序
参考链接:https://blog.csdn.net/huzhigenlaohu/article/details/51595676
- js匿名函数,闭包
http://www.cnblogs.com/chenxianbin89/archive/2010/01/28/1658392.html
- 两个对象用equals方法比较为true,它们的Hashcode值相同吗?
两个对象用equals方法比较为true,它们的Hashcode值相同吗? 答:不一定相同.正常情况下,因为equals()方法比较的就是对象在内存中的值,如果值相同,那么Hashcode值也应该相同 ...
- IOI2016Day2. Messy
题目链接:http://uoj.ac/problem/239 题目大意: 这是一道交互题,交互库维护了一个数据结构,可以存储n为二进制串,一开始你可以向空的数据结构中插入若干二进制串, 接下来这个数据 ...
- [HCNA]VLAN配置Access接口
实验目的 1.理解VLAN的应用场景 2.掌握VLAN的基本配置 3.掌握Access接口的配置方法 4.掌握Access接口加入相应VLAN的方法 实验仪器 eNSP 实验原理 如网络拓扑图所示 各 ...
- ubuntu14.04 安装PIL库出现OError: decoder jpeg not available 的解决方案
出现 OError: decoder jpeg not available 的原因是,没有装JPEG的库,同时要支持png图片的话还要装 ZLIB.FREETYPE2.LITTLECMS的库文件. 先 ...
- SpringSecurity 进行自定义Token校验
背景 Spring Security默认使用「用户名/密码」的方式进行登陆校验,并通过cookie的方式存留登陆信息.在一些定制化场景,比如希望单独使用token串进行部分页面的访问权限控制时,默认方 ...
- 第一篇博客 ---- 分享关于Maven使用的一些技巧
Maven环境搭建 在官网上下载maven安装包,地址:http://maven.apache.org/download.cgi . 解压文件到电脑坐在盘符目录,如E:\apache-maven-3. ...
- Android开发学习之路--性能优化之布局优化
Android性能优化方面也有很多文章了,这里就做一个总结,从原理到方法,工具等做一个简单的了解,从而可以慢慢地改变编码风格,从而提高性能. 一.Android系统是如何处理UI组件的更新操作的 ...