ExtJS[Desktop]实现图标换行示例代码


Posted in Javascript onNovember 17, 2013

ExtJS中的desktop的demo中,默认的图标排列是不换行的,这就造成了如果桌面上的图标过多的话,当超出桌面区域,会造成图标遮盖,即超出桌面区域的部分会被任务栏遮挡,以下代码就是为了解决这一问题的。

首先,在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; 
} 
}

然后在当前的js文件中的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); 
}
Javascript 相关文章推荐
根据分辩率调用不同的CSS.
Jan 08 Javascript
图像替换新技术 状态域方法
Jan 28 Javascript
jquery控制左右箭头滚动图片列表的实例
May 20 Javascript
js判断IE浏览器版本过低示例代码
Nov 22 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
Mar 19 Javascript
深入探讨javascript中的数据类型
Mar 04 Javascript
JavaScript 继承详解(五)
Oct 11 Javascript
前端 Vue.js 和 MVVM 详细介绍
Dec 29 Javascript
详解基于angular-cli配置代理解决跨域请求问题
Jul 05 Javascript
微信小程序 rich-text的使用方法
Aug 04 Javascript
three.js实现圆柱体
Dec 30 Javascript
antd多选下拉框一行展示的实现方式
Oct 31 Javascript
javascript:void(0)是什么意思示例介绍
Nov 17 #Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
Nov 17 #Javascript
setInterval()和setTimeout()的用法和区别示例介绍
Nov 17 #Javascript
js用正则表达式来验证表单(比较齐全的资源)
Nov 17 #Javascript
jquery在项目中做复选框时遇到的一些问题笔记
Nov 17 #Javascript
jQuery学习之prop和attr的区别示例介绍
Nov 15 #Javascript
JQuery Highcharts 动态生成图表的方法
Nov 15 #Javascript
You might like
基于asp+ajax和数据库驱动的二级联动菜单
2010/05/06 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
Python获取网页上图片下载地址的方法
2015/03/11 Python
浅谈对yield的初步理解
2017/05/29 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
Pycharm小白级简单使用教程
2020/01/08 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
专升本自我鉴定
2013/10/10 职场文书
生产管理的三大手法
2013/11/11 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
团日活动总结范文
2014/04/25 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
《包身工》教学反思
2016/02/23 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python