`
yiminghe
  • 浏览: 1453154 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

WindowLite 轻量级的Ext窗口

阅读更多

 

归属

 

 

[置顶] Lite-Ext 适合WebPage的轻量级Ext


google code 持续更新,这里停止维护

 

很荣幸 该组件被 <<Extjs 高级程序设计>> 采纳使用 :)


关闭窗口演示@google code

 

隐藏窗口演示@google code


修改窗体演示@google code


任务栏演示@google code

 

 

利用ext core重新简化实现 Ext.Window ,单用的话更节省网络带宽。

 

跟风整理了部分到 google code 可 svn 直接下载新版(持续维护) : lite-ext@code.google

 

 

实现要点:


1.注意 extjs window 背景的设置 < 左><右><中> </中> </右> </左>


2.用户初始设置是设置窗体body的大小


3.注意 调节大小时 ,body 大小的得出 ,因为 Extjs Resizeable 的 resize 事件得到的是 整个窗体调节后的大小 而不是窗体body的大小,技巧是 根据 调节前后窗体的大小差 == 调节前后窗体body的大小差 ,来得出调节后窗体body的大小进行设置


4.setHeight,setWidth,setSize Ext-core已经自动减去 边框长度和padding      实际上是 setOffsetHeight setOffsetWidth setOffsetSize


5.增加示例实现 alert



AOL Skin:

3.0 增加 taskbar



/*
	http://yiminghe.iteye.com/blog/374182
	v1.0(20090424) 偷窃ext window素材以及利用ext core,DD,Resizable 简化重新实现Window
	v1.1(20090424) 修正ie显示问题
	v1.5  抄袭extjs window 拖放ghost实现  
	v1.6(20090426) 增加底部按钮设置(静态,动态)
	v1.6.5(20090427) 修正resize 工具条上移,计算button高度,难点:resize后动态按纽处理
	v1.7(20090428) ie6 按钮底部多出bug修正,overflow要设置hidden
	v1.8(200900504) 通过css2.1 validation
	v2.0(200900509) 提升初始化效率,修改宽度高度计算,setHeight,setWidth,setSize Ext-core已经自动减去 边框长度和padding 
		实际上是 setOffsetHeight setOffsetWidth setOffsetSize 
	v2.0.1(200900512)	隐藏设置高度为0,防止占用页面空间
	v2.2(200900525) 增加利用windowlite 编写 alertlite 示范,fix ie6 height:100% bug
	v2.3(200900610) 增加窗体阴影Shadow-min.js设置,resize错误修正,利用闭包实现alert单例模式
	v2.3.5(200900611) 增加设置:defaultButton,buttonAlign(默认右对齐),方法:focusButton,removeButton,修正removeAllButtons,见示例html
	v2.4(200900613) 逼近extjs window:增加方法autoHeight,根据内容自适应高度,resize计算改变,增加show方法参数animEl,alertlite 增加icon以及callback设置
	v2.4.2(20090616) 增加closable配置,修正没有默认按钮焦点设置问题
	v2.5(20090723) 增加 maximizable 配置(窗口最大化处理).
	v2.5.1(20090728) 增加 closeAction 配置,默认hide,可以完全内存中移除window
	v2.5.2(20090730) ie6 select 突出bug解决,close内存释放改进
	v2.5.3(20090811) width不设置时,自动宽度大小调整
	v2.8(20090812) show 方法调整,option 配置,添加 constrainToView ,避免浏览器出现滚动条,
									双击标题关闭窗口,点击窗体使得所属窗口到最前端,
									优化代码结构,支持多达1.5M table数据直接渲染到 窗体body ,参见:windowlite_close.html
	v2.9(20090902) 代码整理,加入 AOL 皮肤,详见示例
	v2.9.2(20090903) 加入 tools 配置 [{cls:'',click:function(evt){}},...] ,添加其他图标
	v2.9.5(20090909) 修正 constrainToView 在浏览器出现滚动条时,仍然全部保留在当前可见区域中。(show({x:,y:})):x,y应为当前窗口可见区域,
									 show (x,y ,constrainToView:true)保证窗口的四个角有一个角在x,y位置,参见window的右键菜单功能表示
									 
	v2.9.8(20090914)	对浏览器出现滚动条时的 constrainToView 行为大量修正,保证window时出现在视窗里面。具体:
	 		              最大化窗口里在window弹出的浏览器滚动条问题修正,body - > overflow:auto,left,top->scrollTop,scrollLeft
				            注意滚动条在firefox3中占据viewsize !
  v2.9.8.2(20090919) 全屏时firefox修正		
  v2.9.8.5(20090927) 增加minHeight,maxHeight配置,可单独调用constrainHeight.
  v3(20091010) 重要更新:增加 taskbar 配置,可以出现 窗口管理栏了,参见 windowlite_taskbar.html            
*/
      
 
使用代码

 
var mwindow = new Ext.ux.WindowLite({			
			//窗体内容的大小,注意不是窗体的大小
        width:1000,
        height:300,
        html:'<table width="100%"><tr><td>zzzzzqq</td><td width="90%">zzzzzqqddddddddddddddddddddddddddddddddddddddddd</td></tr></table>',
        //是否支持拖放,请载入 DDCore-min.js
        drag:true,
        title:'请选择职位',
        
        //是否允许最大化窗口
        maximizable:true,
        
        shadow:'frame',//默认sides
				shadowOffset:6,//默认4
        
        //是否有关闭按钮,默认true
        //closable :false,
        
        //设置默认焦点按钮
        //defaultButton:'AlertLite 1',
        //静态设置按钮       
        buttons:[{
        	text:'AlertLite 1',
        	handler:function(evt) {
        		Ext.ux.MessageBoxLite.alert({title:'AlertLite 1',
        			info:'设置按钮1展示一下',
        			icon:['error','info','warning','question'][Math.floor(Math.random()*4)],
        			callback:function(){
        				alert('icon alert 88');
        			}
        		});
        		evt.stopEvent();
        	}
        },
        {
        	text:'AlertLite 2',
        	handler:function(evt) {
        		Ext.ux.MessageBoxLite.alert({title:'AlertLite 2',
        			info:'设置按钮2展示一下long的'
        		});
        		evt.stopEvent();
        	}
        }
        ],
        //是否模态窗口
        modal:true,
        //是否支持用户调节大小      	
        resizable:true
   });	
	//动态设置按钮,scope 可以设置,默认 mwindow
	mwindow.addButton({text:'动态按钮',handler:function(){
		alert('fun');
		this.removeAllButtons();
	}
	//,scope:xx
	});
	mwindow.addButton({text:'动态按钮2',handler:function(){
		alert('fun2');
		this.addButton({text:'动态按钮3',handler:function(){
			this.removeButton('动态按钮3');
		}
		});
	}
	//,scope:window
	});
  mwindow.on('hide',function(){
  	//alert('窗体隐藏了');
  });
   mwindow.on('beforehide',function(){
  	 //if(!confirm('是否隐藏'))
  	 	//	return false;
  });
    Ext.fly('action_a').on('click', function(evt) {
    	 var xy=evt.getXY();
    	 mwindow.show({
    		//animateTarget:'action_a',
    		x:xy[0],
    		y:xy[1],
    		constrainToView:true
    	});
    	
    });
    Ext.fly('action_c').on('click', function() {
        (mwindow.hide());
    });
    Ext.fly('action_b').on('click', function() {
        mwindow.addButton({text:'动态按钮xx',handler:function(){
					mwindow.removeAllButtons();
		
				}});
    });
 
使用注意:

暂时没有 destroy , close 方法的解决: (2.5开始增加close方法 )

我当初用ext window的时候很少close,closeaction我设的都是hide,考虑尽量重用,修改win.body 就可以重用一个window ,因为建立一个window很耗资源的 
不过 destroy 为了完备性 方法会加进去的
关键是注意 window的重用就行了,看看alertlite,所有的alert重用一个window

窗体操作:
window.body 为窗体的内容显示区域,为 Ext.Element 类型,可在建立窗体后对 window.body 用 Ext.DomHelper 的相关工具函数进行操作来填充修改窗体。


  • 大小: 13.9 KB
  • 大小: 18.5 KB
  • 大小: 51.2 KB
分享到:
评论
4 楼 you 2009-06-09  
Window的作用绝不会只是show一些固定内容吧

如果要show一些动态的信息呢?
比如是show一个url...

可以实现么?
3 楼 yiminghe 2009-05-25  
you 写道

Great!
有个小问题,Alert里面的按钮怎样才能居中?
buttonAlign:"center",或者center:true, 都无效


暂时没有实现,重用的是 window 的 button ,window 的 button 仿照 windowsxp 都是float;right ....
2 楼 you 2009-05-25  
Great!
有个小问题,Alert里面的按钮怎样才能居中?
buttonAlign:"center",或者center:true, 都无效
1 楼 freespace 2009-04-26  
收藏了,以后基于ext core这个东东的组件会多起了,毕竟ext core很小巧,适合互联网的web开发。

相关推荐

    WindowLite 轻量级的Ext窗口.zip

    WindowLite是一款轻量级的Ext窗口库,专为优化网页应用程序中的弹出窗口体验而设计。这个库利用了现代Web技术,尤其是CSS3,来实现高效、流畅且自定义程度高的窗口组件。在深入探讨WindowLite之前,我们先了解一下...

    Lite-Ext WebPage的轻量级Ext.zip

    Lite-Ext 是一个针对Web页面的轻量级Ext库,主要设计用于简化前端JavaScript开发,尤其是在构建用户界面时。这个库可能包含了一系列优化过的组件和工具,以减少资源占用,提高网页性能。从标签"js 前端"我们可以推断...

    WindowLite 基于EXT的可拖动改变大小的提示窗口 v2.0

    WindowLite是一款基于EXT JavaScript库开发的可拖动和改变大小的提示窗口工具,适用于Web应用程序中的弹出消息或用户交互场景。EXT是一个强大的前端开发框架,它提供了丰富的组件和功能,使得开发者能够构建复杂的、...

    CalendarLite 轻量级的Ext日历.zip

    《CalendarLite:轻量级Ext日历的深度解析与应用》 在前端开发领域,日历组件是不可或缺的一部分,尤其在处理时间相关的功能时。本文将深入探讨一款名为"CalendarLite"的轻量级Ext日历插件,帮助开发者更好地理解和...

    TipLite 轻量级的Ext 提示----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    【TipLite】是一种轻量级的JavaScript库,主要用于在Ext JS框架中提供提示信息和增强用户体验。这个库设计的目标是减少资源消耗,提高应用的性能,同时保持代码的简洁和易用性。在Ext JS的基础上,TipLite为开发者...

    各种弹出窗口 ext窗口

    EXT 2.0 MessageBox 和 JavaScript 弹出窗口是两种在 Web 应用程序中常见的用户交互方式。它们允许开发者向用户展示信息、询问问题或获取输入。EXT 是一个流行的 JavaScript 框架,特别是它的 EXT JS 库,用于构建富...

    轻量级JAVAEE在教材标准管理系统开发的应用研究应用.doc

    "轻量级JAVAEE在教材标准管理系统开发的应用研究应用" 本文总结了轻量级JAVAEE技术在教材标准管理系统开发中的应用研究和实践。系统设计基于Java EEBS/S模式管理信息系统,分为前台设计和后台设计。后台设计采用了...

    轻量级文件恢复

    轻量级文件恢复通常指的是那些不需要高级专业知识,用户可以自行操作的简易数据恢复方法。以下是对这个主题的详细阐述: 1. **基本概念**:文件恢复是指通过各种技术和软件手段,将误删除、格式化或者由于硬件故障...

    Ext JS高级程序设计

    通过学习《Ext JS高级程序设计》,开发者可以掌握创建复杂、动态和交互性强的Web应用的技能,从而提升其在企业级Web开发中的专业能力。无论是初学者还是有经验的开发者,都能从中受益,提升自己在Ext JS领域的技术...

    ext combobox二级联动

    ext,ext combobox,ext二级联动,ext combobox二级联动 ___本人的原则:上传好东西,但绝不便宜.因为自己的心血 ext combobox二级联动,ext ,ext combobox,combobox,combobox二级联动,ext 二级联动 groupCombo.on('...

    ext-locale:Ext JS的轻量级本地化

    Ext-locale包提供了使用预定义词典对象进行轻量级本地化的机制。 它完全支持动态包加载器,并在任何给定级别提供类内的属性替换。 另外,它可以在XTemplate中使用,并确保与视图绑定的紧密集成。 当前版本2.5.0的...

    ZentaoPHP v2.3 轻量级MVC开发框架.zip

    zentaoPHP框架是禅道开发团队开发的一款轻量级的mvc框架,概念简单,结构良好,同时很注重对开发人员的友好,有深度的扩展机制。zentaoPHP框架成功的驱动了禅道团队三个产品,上百个功能模块的开发维护。 更新...

    EXT中文EXT中文EXT中文EXT中文EXT中文

    EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT...

    ext3.jar ext使用非常多

    EXT框架的核心在于其丰富的组件库,包括数据网格、表单、窗口、工具栏、菜单等,这些组件具有高度可定制性和交互性,使得开发者可以轻松创建出功能强大、界面美观的Web应用。EXT3是EXT发展中的一个重要阶段,它引入...

    ext extext extext extext extext extext extext extext ext

    asdext extext extext extext extext extext extext extext extext extext extext extext extext extext ext

    Extjs5.0 Mini 轻量级 使用方式概述 引用讲解 Extjs5.0 gray

    在5.0版本中,它提供了一个轻量级的版本,称为“Mini”,旨在减少应用的体积,提高加载速度,尤其适合对性能有较高要求或者需要快速开发的项目。在本概述中,我们将深入探讨如何在项目中引入并使用ExtJS 5.0 Mini,...

    tabular-input, 用于构建表格输入方法的轻量级jQuery插件.zip

    tabular-input, 用于构建表格输入方法的轻量级jQuery插件 表格输入介绍表格格式中的一行文本字段示例和用法$('#myDiv').tabularInput({'rows': 3, 'columns': 5});在这里阅读更多。许可证MIT许可证

    最新入门级Ext2.0基础教程

    ### 最新入门级Ext2.0基础教程 #### 前言 随着计算机技术的不断发展,文件系统作为操作系统的重要组成部分,对于数据存储、管理和访问起着至关重要的作用。Ext2(第二扩展文件系统)是Linux操作系统中最常用的文件...

Global site tag (gtag.js) - Google Analytics