动态调用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 ajax异步调用方法中不能给全局变量赋值的原因及解决方法
Jan 10 Javascript
jQuery中hide()方法用法实例
Dec 24 Javascript
jQuery学习笔记之回调函数
Aug 15 Javascript
深入理解(function(){... })();
Aug 16 Javascript
Angularjs实现分页和分页算法的示例代码
Dec 23 Javascript
AngularJS路由删除#符号解决的办法
Sep 28 Javascript
vue生成随机验证码的示例代码
Sep 29 Javascript
bootstrap轮播模板使用方法详解
Nov 17 Javascript
Webpack框架核心概念(知识点整理)
Dec 22 Javascript
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
如何使用less实现随机下雪动画详解
Jan 02 Javascript
解决vue打包后刷新页面报错:Unexpected token
Aug 27 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巧获服务器端信息
2006/12/06 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
php实现上传图片文件代码
2015/07/19 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
python处理cookie详解
2014/02/07 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
python ftplib模块使用代码实例
2019/12/31 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
高中三年学习生活的自我评价
2013/10/10 职场文书
四年大学生活的个人自我评价
2013/12/11 职场文书
村道德模范事迹材料
2014/08/28 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers