动态调用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 相关文章推荐
基于jquery DOM写的类似微博发布的效果
Oct 20 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
Aug 02 Javascript
js中生成map对象的方法
Jan 09 Javascript
分享一款基于jQuery的视频播放插件
Oct 09 Javascript
推荐8款jQuery轻量级树形Tree插件
Nov 12 Javascript
浅谈JavaScript中的字符编码转换问题
Jul 07 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
Jan 19 Javascript
求js数组的最大值和最小值的四种方法
Mar 03 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
Jun 13 Javascript
JS简单表单验证功能完整示例
Jan 26 Javascript
JS实现盒子拖拽效果
Feb 06 Javascript
关于angular引入ng-zorro的问题浅析
Sep 09 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设计模式之观察者模式的应用详解
2013/05/21 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
PHP中串行化用法示例
2016/11/16 PHP
php cli模式下获取参数的方法
2017/05/05 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
python创建进程fork用法
2015/06/04 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
入党积极分子自我鉴定
2014/02/18 职场文书
文秘大学生求职信
2014/02/25 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
酒店前台岗位职责
2015/04/16 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书