ExtJs2.0学习系列(15)--extjs换肤

本文详细介绍了如何在ExtJS 2.0中更换皮肤,包括直接添加CSS文件换肤的方法和利用Cookie实现持久化的换肤功能。通过简单的JavaScript代码实现了用户可选样式,并能在下次访问时自动加载用户偏好的样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ExtJs2.0学习系列(15)--extjs换肤

extjs的默认皮肤很好看,但是我们还可以变换样式切换其他皮肤.

1.直接添加其他css文件换肤.
皮肤文件:xtheme-olive.zip下载
把皮肤文件解压,把css文件(如xtheme-olive.css)拷贝到extjs的resources目录下css文件夹里面:

解压皮肤文件,把里面的相应的 image文件夹下的目录(比如olive)拷贝到extjs的resources目录下images文件夹下


设置css文件如下:


其实就是在原有的基础上添加了个xtheme-olive.css文件。

效果图:

 

2.配合cookie实现网站换肤

  我们的目标:

/*
    用户可以选择自己的样式,当下次用户打开的网站(在cookie的有效期内)的时候,自动读取cookie,显示先前选择的爱好的样式!
*/

我们的原理:

// 关键点
1 .document.getElementsByTagName( " link " )[ 1 ].href // 获取或者设置第二个css文件的href值
2 . var  date = new  Date(); // 今天的日期
  date.setTime(date.getTime() + 30 * 24 * 3066 * 1000 ); // 30天后的日期
  document.cookie = " css= " + name + " ;expires= " + date.toGMTString(); // 设置30天后过期的cookies(名称为css)
3 . var  cookiesArr = document.cookie.split( " ; " );
  
var  css;
  
for ( var  i = 0 ;i < cookiesArr.length;i ++ )
  {
       
var  arr = cookiesArr[i].split( " = " );
       
if (arr[ 0 ] == " css " )
       {
          css
= arr[ 1 ];
          
break ;
       }
  }
// 这段代码是获取cookies中想要的名称为css的cookies,并保存在变量css中去
4 .如果不设置expires的话,会在关闭浏览器后cookies失效。

html代码:

<!-- 切换标签 -->
< href ="javascript:void(0)"  onclick ="changecss('')" > 还原 </ a >
< href ="javascript:void(0)"  onclick ="changecss('xtheme-olive.css')" > 绿色 </ a >
< href ="javascript:void(0)"  onclick ="changecss('xtheme-gray.css')" > 灰色 </ a >
< href ="javascript:void(0)"  onclick ="changecss('xtheme-purple.css')" > purple </ a >

关键js代码:

     function  changecss(name)
    {
       
var  date = new  Date();
       date.setTime(date.getTime()
+ 30 * 24 * 3066 * 1000 );
       document.getElementsByTagName(
" link " )[ 1 ].href = " ExtJs/resources/css/ " + name;
       document.cookie
= " css= " + name + " ;expires= " + date.toGMTString(); // 设置cookies
    }

  
var  cookiesArr = document.cookie.split( " ; " );
  
var  css;
  
for ( var  i = 0 ;i < cookiesArr.length;i ++ )
  {
       
var  arr = cookiesArr[i].split( " = " );
       
if (arr[ 0 ] == " css " )
       {
          css
= arr[ 1 ];
          
break ;
       }
  }
  document.getElementsByTagName(
" link " )[ 1 ].href = " ExtJs/resources/css/ " + css; // 读取并应用css

效果图(下次打开浏览器还是这样):

OK,对于extjs的换肤,就聊到这里,其实觉得默认的皮肤还可以拉,

下面我提供几套丛网上下载到的皮肤,如果你有什么其他好看的皮肤,请跟帖答复,给个下载地址 .

 http://files.cnblogs.com/qianxudetianxia/xtheme-slate.zip

http://files.cnblogs.com/qianxudetianxia/xtheme-purple.zip 

http://files.cnblogs.com/qianxudetianxia/xtheme-galdaka.zip 

http://files.cnblogs.com/qianxudetianxia/xtheme-darkgray.zip 

http://files.cnblogs.com/qianxudetianxia/xtheme-black.zip 

thanks!

 

 


Tag标签: Extjs, UI, ExtJs2.0, Ext
posted @ 2008-08-27 00:06 谦虚的天下 阅读(1290) 评论(7)   编辑 收藏 所属分类: ExtJs学习系列

   回复   引用   查看     
#1楼  2008-08-27 09:36 | jillzhang       
非常好
   回复   引用   查看     
#2楼  2008-08-27 10:33 | cloudgamer       
样式挺好看
   回复   引用   查看     
#3楼  2008-08-28 15:42 | 殷良胜       
非常好
   回复   引用   查看     
#4楼  2008-08-29 09:07 | 麒麟       
在IE中换肤报错啊
   回复   引用   查看     
#5楼  [ 楼主]2008-08-29 09:54 | 谦虚的天下       
@麒麟
我在IE7和ff3下都正常,你的出错的代码是什么?
   回复   引用   查看     
#6楼  2008-08-29 13:42 | 麒麟       
代码没错,我在IE6.0下,换肤的时候,浏览器会弹出出现遇到问题需要关闭的窗口,火狐下使用没有问题
   回复   引用   查看     
#7楼  2008-08-29 13:45 | 麒麟       
不知道楼主什么时候写关于ajax异步数据库处理的文章
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值