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 相关文章推荐
关于图片按比例自适应缩放的js代码
Oct 30 Javascript
node.js中的console.error方法使用说明
Dec 10 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
Mar 19 Javascript
在JavaScript中使用开平方根的sqrt()方法
Jun 15 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
Apr 03 jQuery
详解vue.js之props传递参数
Dec 12 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
Apr 13 Javascript
默认浏览器设置及vue自动打开页面的方法
Sep 21 Javascript
小程序如何写动态标签的实现方法
Feb 05 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
Feb 27 Javascript
Vue如何实现变量表达式选择器
Feb 18 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
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
php从数组中随机抽取一些元素的代码
2012/11/05 PHP
Javascript 中的类和闭包
2010/01/08 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
用jquery写的菜单从左往右滑动出现
2014/04/11 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
python re模块findall()函数实例解析
2018/01/19 Python
Python切片操作实例分析
2018/03/16 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
如何在C# winform中异步调用web services
2015/09/21 面试题
爱情检讨书大全
2014/01/21 职场文书
医院保洁服务方案
2014/06/11 职场文书
财务工作失职检讨书
2014/11/21 职场文书
行为规范主题班会
2015/08/13 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
浅谈Python数学建模之线性规划
2021/06/23 Python