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 相关文章推荐
javascript parseInt 函数分析(转)
Mar 21 Javascript
页面中iframe相互传值传参
Dec 13 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
Apr 26 Javascript
jquery text(),val(),html()方法区别总结
Nov 04 Javascript
JS获取当前日期和时间的简单实例
Nov 19 Javascript
整理JavaScript创建对象的八种方法
Nov 03 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
Apr 01 Javascript
纯js实现瀑布流布局及ajax动态新增数据
Apr 07 Javascript
原生js实现验证码功能
Mar 16 Javascript
详解基于mpvue的小程序markdown适配解决方案
May 08 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 Javascript
vue 实现购物车总价计算
Nov 06 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
使用php自动备份数据库表的实现方法
2017/07/28 PHP
nginx 设置多个站跨域
2021/03/09 Servers
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
python检测某个变量是否有定义的方法
2015/05/20 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Python容器使用的5个技巧和2个误区总结
2019/09/26 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
中国高端家电购物商城:顺电
2018/03/04 全球购物
卫生安全检查制度
2014/02/04 职场文书
植树造林的宣传标语
2014/06/23 职场文书
应届毕业生自荐信
2015/03/04 职场文书
建党伟业的观后感
2015/06/01 职场文书
教务处干事工作总结
2015/08/14 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP
python元组打包和解包过程详解
2021/08/02 Python
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏
2022年显卡天梯图(6月更新)
2022/06/17 数码科技