您的位置:首页 > Web前端 > JavaScript

ExtJs4 desktop 开发 桌面图标换行

2011-12-02 16:42 417 查看
以下是Ext4 的desktop桌面图标换行问题网上流传的解决方法 (是存在问题的)

init: function() {

this.callParent();

this.initShortcut();

}

注意 自定义函数 init 要放在 callParent 的下面。否则页面初始化的时候。没有换行。只有在变换页面高度的时候,才换行。

initShortcut:function(){

//shortcuts 自动换行

var btnHeight = 70;//61

var btnWidth = 64;

var btnPadding = 35;//15

var col = null;

var row = null;

function initColRow(){

col = {

index: 1,

x: btnPadding

};

row = {

index: 1,

y: btnPadding

};

}

initColRow();

function isOverflow(y){

//if(y > (Ext.lib.Dom.getViewHeight() - taskbarEl.getHeight())){

if(y>Ext.get('ext-gen1003').getHeight()-Ext.get('taskbar-1024').getHeight()){

return true;

}

return false;

}

this.setXY = function(item){

var bottom = row.y + btnHeight,

overflow = isOverflow(row.y + btnHeight);

if(overflow && bottom > (btnHeight + btnPadding)){

col = {

index: col.index++,

x: col.x + btnWidth + btnPadding

};

row = {

index: 1,

y: btnPadding

};

}

Ext.fly(item).setXY([

col.x

, row.y

]);

row.index++;

row.y = row.y + btnHeight + btnPadding;

};

this.handleUpdate = function(){

initColRow();

//var items=shortcuts.dom.children;

var items = Ext.query(".ux-desktop-shortcut");

for(var i = 0, len = items.length; i < len; i++){

this.setXY(items[i]);

}

}

this.handleUpdate();

//每过 500 毫秒重绘页面

Ext.EventManager.onWindowResize(this.handleUpdate, this, {
delay:500
});
//end shortcuts 自动换行

}

问题:



依据此方法修改后,当浏览器窗口大小改变后桌面图标才会换行显示,第一次进入应用程序后桌面图标任然没有换行显示

解决方法:

在this.handleUpdate(); 后加

Ext.Function.defer(this.handleUpdate, 500, this, []);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: