动态调用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的Node遍历找到repeater的一个字段实例介绍
Apr 25 Javascript
jquery 删除字符串最后一个字符的方法解析
Feb 11 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
Mar 14 Javascript
jQuery实现鼠标点击弹出渐变层的方法
Jul 09 Javascript
JS实现灵巧的下拉导航效果代码
Aug 25 Javascript
JavaScript实现隐藏省略文字效果的方法
Apr 27 Javascript
vue如何解决循环引用组件报错的问题
Sep 22 Javascript
inquirer.js一个用户与命令行交互的工具详解
May 18 Javascript
Vue项目中ESlint规范示例代码
Jul 04 Javascript
weui上传多图片,压缩,base64编码的示例代码
Jun 22 Javascript
原生JS实现飞机大战小游戏
Jun 09 Javascript
微信小程序APP的生命周期及页面的生命周期
Apr 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
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
基于jquery的表格排序
2010/09/11 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
2018/03/23 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
python中遍历文件的3个方法
2014/09/02 Python
python中文编码问题小结
2014/09/28 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
通过cmd进入python的步骤
2020/06/16 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
数据库方面面试题
2012/04/22 面试题
高中竞选班长演讲稿
2014/04/24 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS