动态调用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 相关文章推荐
代码精简的可以实现元素圆角的js函数
Jul 21 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 Javascript
JS对img标签进行优化使用onerror显示默认图像
Apr 24 Javascript
JavaScript Array对象扩展indexOf()方法
May 09 Javascript
javascript定义变量时有var和没有var的区别探讨
Jul 21 Javascript
在AngularJS框架中处理数据建模的方式解析
Mar 05 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
Sep 04 Javascript
Javascript继承机制详解
May 30 Javascript
vuejs 单文件组件.vue 文件的使用
Jul 28 Javascript
详解如何让Express支持async/await
Oct 09 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
Sep 19 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
239军机修复记
2021/03/02 无线电
php 图片上添加透明度渐变的效果
2009/06/29 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
Python利用IPython提高开发效率
2016/08/10 Python
python绘制双柱形图代码实例
2017/12/14 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
实习计划书范文
2015/01/16 职场文书
2016年母亲节寄语
2015/12/04 职场文书
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android