动态调用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增加与删除table列的方法
Mar 01 Javascript
Bootstrap CDN和本地化环境搭建
Oct 26 Javascript
浅述Javascript的外部对象
Dec 07 Javascript
d3.js实现立体柱图的方法详解
Apr 28 Javascript
jQuery实现QQ空间汉字转拼音功能示例
Jul 10 jQuery
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
Oct 25 Javascript
Bootstrap实现下拉菜单多级联动
Nov 23 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
Aug 27 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
原生js实现移动端Touch轮播图的方法步骤
Jan 03 Javascript
Node.js Event Loop各阶段讲解
Mar 08 Javascript
JavaScript, select标签元素左右移动功能实现
May 14 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 函数学习简单小结
2010/07/08 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
Python 12306抢火车票脚本
2018/02/07 Python
python视频按帧截取图片工具
2019/07/23 Python
Python post请求实现代码实例
2020/02/28 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
Python如何进行时间处理
2020/08/06 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
介绍一下write命令
2014/08/10 面试题
生产内勤岗位职责
2013/12/07 职场文书
商场主管竞聘书
2014/03/31 职场文书
出国留学经济担保书
2014/04/01 职场文书
《假如》教学反思
2014/04/17 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
环保小标语
2014/06/13 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
浅谈python中的多态
2021/06/15 Python
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js