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查找父节点的简单方法
Jun 28 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
Jul 17 Javascript
jquery实现控制表格行高亮实例
Jun 05 Javascript
jQuery中extend函数详解
Jul 13 Javascript
jQueryUI Datepicker组件设置日期高亮
Oct 13 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
Nov 21 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
Sep 10 Javascript
Javascript 严格模式use strict详解
Sep 16 Javascript
微信小程序自定义导航教程(兼容各种手机)
Dec 12 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
Node.js HTTP服务器中的文件、图片上传的方法
Sep 23 Javascript
vue实现滑动解锁功能
Mar 03 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 魔术常量详解及实例代码
2016/12/04 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
用python删除java文件头上版权信息的方法
2014/07/31 Python
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
基于Django用户认证系统详解
2018/02/21 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
Python实现快速排序的方法详解
2019/10/25 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
Python pip配置国内源的方法
2020/02/14 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
一个精品风格的世界:Atterley
2019/05/01 全球购物
活动邀请函范文
2014/01/19 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
阿里云服务器部署RabbitMQ集群的详细教程
2022/06/01 Servers
服务器SVN搭建图文安装过程
2022/06/21 Servers