ExtJS Desktop桌面图标换行
2015-10-23 23:53
597 查看
开始想着不用dataview做,改container但刚入门的菜鸟表示实在是有点崩溃。
然后就看到了大牛的实现,自己理解实践了一下,记录一下
在渲染后和窗体大小变化时调用函数对图标进行重新排列,函数如下:
初次渲染后:
然后就是那个函数的具体实现啦:
呃,设置了display:list-item,简直是自己挖坑自己跳啊,OK啦
然后就看到了大牛的实现,自己理解实践了一下,记录一下
在渲染后和窗体大小变化时调用函数对图标进行重新排列,函数如下:
初次渲染后:
</pre><pre name="code" class="javascript">afterRender: function () { var me = this; me.callParent(); me.el.on('contextmenu', me.onDesktopMenu, me); // 实现桌面图标自动换行 Ext.Function.defer(me.initShortcut, 1); },然后在createDataView函数中添加监听器:
createDataView: function () { var me = this; return { xtype: 'dataview', overItemCls: 'x-view-over', trackOver: true, itemSelector: me.shortcutItemSelector, store: me.shortcuts, // style: { position: 'absolute' }, // x: 0, y: 0, // 实现桌面图标自动换行 listeners:{ resize: me.initShortcut }, tpl: new Ext.XTemplate(me.shortcutTpl) }; },
然后就是那个函数的具体实现啦:
initShortcut : function() { var btnHeight = 64; var btnWidth = 64; var btnPadding = 25; var col = {index: 1, x: btnPadding}; var row = {index: 1, y: btnPadding}; var bottom; // 任务栏高度 var taskBarHeight = Ext.query(".ux-taskbar")[0].clientHeight; var bodyHeight = Ext.getBody().getHeight() - taskBarHeight; var items = Ext.query(".ux-desktop-shortcut"); for (var i = 0, len = items.length; i < len; i++) {、 // row的值在每次部署好上一个button后更新 // bottom是当前button如果放到最底部的Y值 bottom = row.y + btnHeight; // bottom位置已经超出body的高度了,而且这一列已经放了至少一个button if ((bottom > bodyHeight) && bottom > (btnHeight + btnPadding)) { //那么你就去下一列吧,index,XY值也随之改变 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; } },好吧,但是又出现了新问题,前面出现了想ul.li前面一样的小点点标记,还没解决,菜鸟加油。
呃,设置了display:list-item,简直是自己挖坑自己跳啊,OK啦
相关文章推荐
- <%@ include file=""%>和<jsp:include page="c.jsp"></jsp:include>区别
- JavaScript之 ------ 浏览器对象模型 (BOM)
- js——input框实现淘宝一样的点击后商品数量的增加和减少
- 201510232239_《Javascript权威指南(第六版)——不污染js(不可扩展和不可配置)、》(P243-244)
- 使用自定义tld标签简化jsp的繁琐操作
- 各个JSON技术的比较
- Javascript计数器
- 【翻译】Ext JS最新技巧――2015-10-21
- 借助 SublimeLinter 编写高质量的 JavaScript & CSS 代码
- 【翻译】Ext JS最新技巧——2015-10-21
- 【翻译】Ext JS最新技巧——2015-10-21
- 【翻译】Ext JS最新技巧——2015-10-21
- Douglas Crockford 大神写的 JavaScript 异步控制库:RQ(上)
- JSF -> 导航(Navigation)
- JavaScript之 ------ 一些常用的对象
- 【Leafletjs】6.Control.Loading推展-在地图上边框添加加载动态条
- JSP -> f:loadBundle用法
- 客户端禁用了javascript和cookie的解决办法
- javascript中的模式解析——原型模式
- [JS]写入Cookie