在extjs desktop中,有时需要显示一些没有边框的透明windows 就像开机LOGO,播放器等,可以显得桌面更酷,实现这个需要两步配合,一是在桌面显示一个无框,背景透明的windows,二是在windows里面显示内容的图片背景最好不是规则形状的,把边缘外的部分透明,保存为png图片,这样,浏览看到的就是一个不规则形状的LOGO,或者播放器等等。
以下是代码
这个可以放在desktop.js文件中,开机自动执行,也可以在其它需要的地方,按需要执行
createpopWindow: function () {
var desktop = this.app.getDesktop();
var win = desktop.getWindow('popwin');
if (!win) {
win = Ext.create('Ext.window.Window', {
header: false,
border: false,
id: 'popwin',
baseCls: '', // 这个很关键 背景透明
shadow: false,
frame: false,
width: 400,
height: 350,
maximizable: false,
resizable: false,
hideMode: 'offsets',
constrain: false,
layout: 'fit',
loader: {
url: 'abc/def.htm', //这个htm里放个不规则形状的边缘透明图片和其他业务代码
autoLoad: true,
scripts: true
}
});
}
var myy = (Ext.getBody().getHeight() - 600) / 2; // 显示在屏幕中间
var myx = Ext.getBody().getWidth() - 53;
win.showAt([myx, myy]);
var proxy = new Ext.dd.DDProxy(win); // 这个win可以拖动位置
return win;
}
以下两个实现的不规则形状桌面窗口
demo : http://demo.linbsoft.com/zykdsk/default.aspx