动态调用css文件——jquery的应用


Posted in Javascript onFebruary 20, 2007

算是翻译吧,原文:http://15daysofjquery.com/style-sheet-switcheroo/12/

可以应用的范围很广,尤其是用标准构架的网站,比如说pjblog就可以,只要通过简单的点击,就可以让网站在瞬间换个皮肤,当然可以通过其他方法实现,这里通过jquery来实现,优点是代码简洁,可读性强
首先放上代码

$(document).ready(function() 
{ 
        $('.styleswitch').click(function() 
        { 
                switchStylestyle(this.getAttribute("rel")); 
                return false; 
        }); 
        var c = readCookie('style'); 
        if (c) switchStylestyle(c); 
}); function switchStylestyle(styleName) 
{ 
        $('link[@rel*=style]').each(function(i) 
        { 
                this.disabled = true; 
                if (this.getAttribute('title') == styleName) this.disabled = false; 
        }); 
        createCookie('style', styleName, 365); 
}

这里说明一下:
$('.styleswitch').click
这一句是对所有classname为styleswitch的对象定义点击事件,在jquery里用"#"表示id,比如$("#my_id")就可以定位到id为my_id的对象,定位classname为".",而定位tagName则不加任何修饰符,比如$("p"),就是定位到所有p对象

readCookie和createCookie是两个自定义函数,这里没有给出来

$('link[@rel*=style]').each(function(i) 

这句话的意思是定位到link标签,其中有rel属性,并且rel属性里要包含style,对每一个这样的对象制定函数
this.disabled = true; 

这句话的意思是使当前的对象失效

function switchStylestyle(styleName)  
{  
    $('link[@rel*=style][@title]').each(function(i)   
    {  
        this.disabled = true;  
        if (this.getAttribute('title') == styleName) this.disabled = false;  
    });  
    createCookie('style', styleName, 365);  
} 

这个函数的作用就是选择当前的样式
$('link[@rel*=style][@title]').each(function(i) 
有了前面的知识,这句话应该就不难理解了吧,就是所有标签名为link,包含rel属性,且rel属性里要包含style,同时还要有title属性的对象,每一个都执行相应的函数

下面来看看主页面的内容 

   

 <link rel="stylesheet" type="text/css" href="styles1.css" title="styles1" media="screen" />  
    <link rel="alternate stylesheet" type="text/css" href="styles2.css" title="styles2" media="screen" />  
    <link rel="alternate stylesheet" type="text/css" href="styles3.css" title="styles3" media="screen" />

这里rel="alternate stylesheet",使得当前的css不会应用到当前的文档,而只是备用 
<li><a href="serversideSwitch.html?style=style1" rel="styles1" class="styleswitch">styles1</a></li>  
<li><a href="serversideSwitch.html?style=style2" rel="styles2" class="styleswitch">styles2</a></li>  
<li><a href="serversideSwitch.html?style=style3" rel="styles3" class="styleswitch">styles3</a></li>

这些就是点击后改变样式部分的代码,我们注意到有rel属性,有class属性,这些都是方便定位用的 示例:http://www.healdream.com/upLoad/html/jquery/styleswitch/

下载:http://www.51files.com/?YTXG82NKA8FA6TIKE4M0

Javascript 相关文章推荐
取键盘键位ASCII码的网页
Jul 30 Javascript
jQuery UI Autocomplete 体验分享
Feb 14 Javascript
jquery中.add()的使用分析
Apr 26 Javascript
JavaScript对象之深度克隆介绍
Dec 08 Javascript
JavaScript DOM操作表格及样式
Apr 13 Javascript
js实现tab切换效果实例
Sep 16 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
Nov 04 Javascript
易被忽视的js事件问题总结
May 14 Javascript
jQuery获取当前点击的对象元素(实现代码)
May 19 Javascript
vue-router 导航钩子的具体使用方法
Aug 31 Javascript
JavaScript继承的特性与实践应用深入详解
Dec 30 Javascript
详细介绍Next.js脚手架完整搭建封装
Apr 26 Javascript
js压缩利器
Feb 20 #Javascript
通过jquery实现tab标签浏览效果
Feb 20 #Javascript
用jquery来定位
Feb 20 #Javascript
NiftyCube——轻松实现圆角边框
Feb 20 #Javascript
nicejforms——美化表单不用愁
Feb 20 #Javascript
greybox——不开新窗口看新的网页
Feb 20 #Javascript
datePicker——日期选择控件(with jquery)
Feb 20 #Javascript
You might like
php设置允许大文件上传示例代码
2014/03/10 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
ThinkPHP控制器详解
2015/07/27 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
Python生成验证码实例
2014/08/21 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
基于django传递数据到后端的例子
2019/08/16 Python
什么是python的id函数
2020/06/11 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
自动化专业个人求职信范文
2013/11/29 职场文书
年会搞笑主持词
2014/03/27 职场文书
模具专业自荐信
2014/05/29 职场文书
民主生活会发言材料
2014/10/20 职场文书
关于远足的感想
2015/08/10 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
python playwright 自动等待和断言详解
2021/11/27 Python