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 相关文章推荐
jquery插件开发之实现google+圈子选择功能
Mar 10 Javascript
jQuery自定义动画函数实例详解(附demo源码)
Dec 10 Javascript
强大Vue.js组件浅析
Sep 12 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
Nov 01 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
Dec 26 Javascript
jQuery列表检索功能实现代码
Jul 17 jQuery
vue init失败简单解决方法(终极版)
Dec 22 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
Aug 20 Javascript
微信小程序框架wepy之动态控制类名
Sep 14 Javascript
Vue中 key keep-alive的实现原理
Sep 18 Javascript
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 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
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
javascript常用对话框小集
2013/09/13 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
2014/02/04 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
深入理解javascript中的this
2021/02/08 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
python通过post提交数据的方法
2015/05/06 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
python实现IOU计算案例
2020/04/12 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
SQL Server面试题
2013/04/04 面试题
如何写一封打动人心的求职信
2014/02/17 职场文书
三好生演讲稿
2014/09/12 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
全陪导游词
2015/02/04 职场文书
2015教师年度考核评语
2015/03/25 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python
vue自定义右键菜单之全局实现
2022/04/09 Vue.js