今天和大家分享一个更换皮肤的控件,但是狠是失望,因为ext官方提供的css很粗糙,最好让美工加以修改,不说了,代码如下.
Ext.ux.ThemeCycleButton = Ext.extend(Ext.CycleButton, {
/**
* file 你的css名称
* text 下拉框的名称
* iconCls 设置图标css
*/
cssItems:[
{file: 'ext-all.css', text: '蓝色月影 ',checked:true, iconCls: 'icon-blue-theme'},
{file: 'xtheme-gray.css', text: '灰色回忆 ', iconCls: 'icon-gray-theme'},
{file: 'xtheme-slate.css', text: '深蓝心情 ', iconCls: 'icon-blue-theme'},
{file: 'xtheme-black.css', text: '黑色物语 ', iconCls: 'icon-blue-theme'},
{file: 'xtheme-olive.css', text: '绿色芳香 ', iconCls: 'icon-blue-theme'},
{file: 'xtheme-purple.css', text: '诱惑紫色 ', iconCls: 'icon-blue-theme'}
],
themeVar:'style',
headVar: 'head',
//cssPath是你放css的位置,这个路径要是弄错了,神仙也出不来的
cssPath:'js/ext2/resources/css/',
initComponent: function() {
Ext.apply(this, {
showText: true,
prependText: ' ',
items: this.cssItems
});
if(Ext.state.Manager){
var selectedTheme = Ext.state.Manager.get(this.themeVar);
if(selectedTheme){
for(var i=0; i<this.items.length;i++){
if (this.items[i].file == selectedTheme){
this.items[i].checked = true;
// this.setActiveItem(this.items[i], true); //error ??
this.changeHandler(this, this.items[i]);
// this.changeHandler.defer(1000, this, [this, this.items[i]]);
break;
}
}
}
}
Ext.ux.ThemeCycleButton.superclass.initComponent.apply(this, arguments);
},
changeHandler: function(o, i){
if(Ext.state.Manager.getProvider()) {
Ext.state.Manager.set(this.themeVar, i.file);
Ext.state.Manager.set(this.headVar, i.head);
}
Ext.util.CSS.swapStyleSheet(this.themeVar, this.cssPath + i.file);
Ext.util.CSS.getRule('.x-panel-body', true).style.background = 'url(' + i.head + ')';
// Ext.util.CSS.updateRule('.x-panel-body', 'background', 'url(' + i.head + ')');
if(Ext.getCmp('viewport')){
Ext.getCmp('viewport').layout.center.panel.setSize(Ext.getCmp('viewport').layout.center.getSize().width + 1);
Ext.getCmp('viewport').doLayout();
Ext.getCmp('viewport').layout.center.panel.setSize(Ext.getCmp('viewport').layout.center.getSize().width - 1);
Ext.getCmp('viewport').doLayout();
}
}
});
Ext.reg('themecyclebutton', Ext.ux.ThemeCycleButton);
例子如下:
var tb=new Ext.Toolbar('toolbar-div');//创建一个工具条
tb.add(
' ',
' ',
' ',
'<b>sam.zhang<b>',
' ',
' ',
'2008-11-10 11:20 ',
' ',
' ',
'这是第35次登陆系统',
'->',
' ',
'',
'->',
new Ext.Toolbar.Button({
text: 'WEbQQ',
handler: function(){
alert("正在启动webQQ,请稍候...");
}
}),
'-',
new Ext.Toolbar.Button({
text: '更改密码',
handler: function(){
alert("你没有权限更改密码.");
}
}),
'-',
new Ext.Toolbar.Button({
text: '注销',
handler: function(){
window.location='ask123_logout';
}
}),
'-',
//...调用控件对象就可以了,easy吧?
new Ext.ux.ThemeCycleButton
);
分享到:
相关推荐
本文将深入探讨如何在 EXTJS 4.2 中更换主题,包括视图层的样式编辑、控制层的事件处理以及如何从 Cookie 中读取和保存主题设置。 1. **视图层的样式编辑** 在 EXTJS 应用中,视图层是用户界面的呈现部分,它包含了...
ExtJS是一款基于JavaScript的富...总的来说,掌握如何更换和定制ExtJS主题皮肤是提升Web应用美观度和用户体验的关键技能之一。通过灵活运用这些主题资源,开发者可以创造出独具特色的EXTJS应用,满足多样化的项目需求。
4. **更换皮肤**: EXTJS支持多皮肤,每个皮肤包含一系列CSS和图片资源。开发者可以为EXTJS应用指定不同的皮肤路径,实现皮肤更换。用户可以通过选择不同的皮肤选项,动态加载对应的CSS和图片资源。 5. **数据验证与...
ExtJS支持更换主题和皮肤,开发者可以通过预设的主题或创建自定义皮肤来改变应用的外观,满足不同项目的视觉需求。 总结,"ExtJs-3.2.0.rar"压缩包为开发者提供了全面的ExtJS 3.2.0资源,包括核心库、样式表、文档...
8. **主题和皮肤**:ExtJS允许开发者自定义或更换皮肤,以改变应用的外观和感觉。3.1版本可能包含了基础的皮肤,但更丰富的主题通常需要在后续版本中寻找。 9. **工具提示和弹出框**:提供动态工具提示和可配置的弹...
10. **皮肤和主题**:ExtJS 2.0支持更换皮肤,可以通过修改CSS样式来改变应用的整体外观,满足不同设计需求。 通过研究和实践这些例子,你将能够熟练地运用ExtJS 2.0开发出功能丰富、用户友好的Web应用。虽然ExtJS...
1. **换肤机制**:ExtJS 3.3.1支持皮肤更换,允许用户根据需求调整应用程序的外观和风格。这通常是通过CSS样式和主题实现的,开发者可以轻松地切换或创建新的皮肤,以满足不同用户界面的需求。 2. **登录功能**:...
9. **主题和皮肤**:ExtJS支持更换主题,通过Sass预处理器,开发者可以定制符合自己需求的外观和样式。 10. **国际化**:ExtJS提供了国际化支持,允许应用根据用户的选择显示不同语言的界面。 通过阅读`ExtjsAPI...
6. **主题定制**:ExtJS支持多主题,开发者可以通过更换皮肤文件轻松改变应用程序的外观,DogDisk可能有定制的主题以满足特定的品牌风格。 现在转向DogDisk网络硬盘系统: 1. **文件管理**:DogDisk提供基本的文件...
外观皮肤化,可以做成不同的风格包,随意更换系统外观,这点是继承了EXTJS的特点。 3。支持多语言。iejoyswebos拓展了语言包,可以支持多语言,而且增加语言包也非常简单 4.动态加载所需的JS和CSS文件,JS文件已...
9. **主题和皮肤**:EXT3.4允许开发者定制和更换皮肤,以改变应用的外观和风格。 10. **事件系统**:EXT3.4使用事件驱动的设计模式,组件间的交互通过监听和触发事件来实现,这使得代码更加模块化和易于维护。 11....
9. **主题和皮肤**:EXTJS支持更换主题,可以轻松改变应用的外观,满足不同项目的需求。 10. **性能优化**:EXTJS 3.2.0虽然相对较旧,但依然包含了一些性能优化技巧,如延迟渲染、动态加载等,可以在不影响用户...
外观皮肤化,可以做成不同的风格包,随意更换系统外观,这点是继承了EXTJS的特点。 3。支持多语言。iejoyswebos拓展了语言包,可以支持多语言,而且增加语言包也非常简单 4.动态加载所需的JS和CSS文件,JS文件已...
6. **主题化**:支持自定义皮肤,允许开发者通过更换CSS样式来改变应用的整体外观,提供一致的用户体验。 7. **工具提示和拖放功能**:ExtJS 2.2提供了易于使用的工具提示和拖放API,增强了用户交互体验。 8. **...
外观皮肤化,可以做成不同的风格包,随意更换系统外观,这点是继承了EXTJS的特点。 3。支持多语言。iejoyswebos拓展了语言包,可以支持多语言,而且增加语言包也非常简单 4.动态加载所需的JS和CSS文件,JS文件已...
Dijit是一个UI组件库,支持可更换皮肤;DojoX则包含创新的控件和应用,如数据网格、图表和离线应用。 3. **Sencha Ext JS**:Sencha是由ExtJS、jQTouch和Raphael合并的项目,主要用于构建富互联网应用。它提供了...
外观皮肤化,可以做成不同的风格包,随意更换系统外观,这点是继承了EXTJS的特点。 3。支持多语言。iejoyswebos拓展了语言包,可以支持多语言,而且增加语言包也非常简单 4.动态加载所需的JS和CSS文件,JS文件已...