动态调用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 相关文章推荐
清除网页历史记录,屏蔽后退按钮!
Dec 22 Javascript
jQuery 位置插件
Dec 25 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 Javascript
JavaScript中获取高度和宽度函数总结
Oct 08 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
Feb 17 Javascript
javascript实现滑动解锁功能
Mar 22 Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 Javascript
在微信小程序中保存网络图片
Feb 12 Javascript
vue表单数据交互提交演示教程
Nov 13 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 Javascript
让IDE识别webpack的别名alias的实现方法
May 06 Javascript
处理JavaScript值为undefined的7个小技巧
Jul 28 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
javascript 触发事件列表 比较不错
2009/09/03 Javascript
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
jQuery实现本地存储
2020/12/22 jQuery
python名片管理系统开发
2020/06/18 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
python 实现IP子网计算
2021/02/18 Python
什么是Web Service?
2012/07/25 面试题
现代化办公人员工作的自我评价
2013/10/16 职场文书
白酒业务员岗位职责
2013/12/27 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL