Ext4 desktop 桌面图标换行实现

今天在网上找了好多换行的方法挨个试了一遍,只要这个我觉得最实用,先看下换行后的效果:

很不错吧,下来说说怎么实现的

首先在desktop.js 文件中扩展一个函数:

//换行

    initShortcut :function(){

         var btnHeight =64;

         var btnWidth =64;

         var btnPadding =30;

         var col ={index :1,x : btnPadding};

         var row ={index :1,y : btnPadding};

         var bottom;

         var numberOfItems =0;

         var taskBarHeight = Ext.query(".ux-taskbar")[0].clientHeight +40;

         var bodyHeight = Ext.getBody().getHeight()- taskBarHeight;

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

 

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

             numberOfItems +=1;

             bottom = row.y + btnHeight;

             if(((bodyHeight < bottom)?true:false)&& bottom >(btnHeight + btnPadding)){

                 numberOfItems =0;

                 col ={index : col.index++,x : col.x + btnWidth + btnPadding};

                 row ={index :1,y : btnPadding};

             }

             Ext.fly(items[i]).setXY([col.x, row.y]);

             row.index++;

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

         }

     }

 

下来在在createDataView添加一个监听器

createDataView:function(){

        var me =this;

        return{

            xtype:'dataview',

            overItemCls:'x-view-over',

            trackOver:true,

            itemSelector: me.shortcutItemSelector,

            store: me.shortcuts,

            tpl:new Ext.XTemplate(me.shortcutTpl),

           

             listeners:{

                resize:me.initShortcut

             }

        };

},

最后就是在afterRender渲染结束时调用函数

afterRender:function(){

        var me =this;

        me.callParent();

        me.el.on('contextmenu', me.onDesktopMenu, me);

       

        Ext.Function.defer(me.initShortcut,1);

},

 

OK 赶紧试试吧

。。。。。全部是在desktop.js 文件中修改的

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值