js实现单一html页面两套css切换代码


Posted in Javascript onApril 11, 2013

今天研究了一下JS的用setAttribute方法实现一个页面两份样式表的效果,具体方法如下:
第一步:在连接样式表的元素里定义一个id,例如

<link href=”1.css” rel=”stylesheet” type=”text/css” id=”css”>

我定义的id是css。
第二步:写一个js函数,代码如下:
<script type=”text/javascript”> 
function change(a){ 
var css=document.getElementById(“css”); 
if (a==1) 
css.setAttribute(“href”,”1.css”); 
if (a==2) 
css.setAttribute(“href”,”2.css”); 
} 
</script>

这个函数的code可以放在页面的任何地方。
第三步:为改变页面的样式表的连接添加一个函数的触发事件,代码如下:
<a href=”#” onClick=”change(1)”>1.css</a> 
<a href=”#” onClick=”change(2)”>2.css</a>

该效果在IE和FF下均测试通过,相信大家看完后因该非常明了,利用这个方法我们可以让浏览者自己选择需要显示的样式表,比如年老者可以选择一个字体较大的样式表。这里需要注意的两点是:
在这个例子中函数名function后面的名字不能为links或者link,如果为links或者link,样式表将不被改变,具体什么原因我也不大清楚,可能是javascript的保留字符。
另外如果是改变整个页面的样式,你需要在样式表文件里定义body的高度为100%

方法二:
第一步:导入两套css文件

<link rel="stylesheet" type="text/css" title="样式A" href="css/people1.css" /> 
<link rel="alternate stylesheet" type="text/css" title="样式B" href="css/people2.css" />

第二步:写切换的js函数
<script type="text/javascript"> 
var title = "样式A"; 
function setStyle(){ //只是样式A 和样式B切换 
if(title=="样式A"){ 
title = "样式B"; 
}else{ 
title = "样式A"; 
} 
var i,links; 
//用dom方法获取所有link元素 
links = document.getElementsByTagName("link"); 
//判断每个link元素中是否含有style字符串 ,用来判断此link元素为样式表link ,同时判断此link是否包含title属性 
for(i=0; links[i]; i++){ 
if(links[i].getAttribute("rel").indexOf("style") != -1 && links[i].getAttribute("title")){ 
//把所有link设为disabled 
links[i].disabled = true; 
//再来判断title中是否有指定的title字符串 有则把当前的link设为可视 即激活当前的link 
if(links[i].getAttribute("title").indexOf(title) != -1){ 
links[i].disabled = false; 
//alert("ok"); 
} 
} 
} 
} 
</script>

第三步:在html标签中调用切换的js函数
<a href="#" onclick="setStyle();" >1</a> 
<a href="#" onclick="setStyle();">2</a> 
<a href="#" onclick="setStyle();">3</a> 
<a href="#" onclick="setStyle();">4</a> 
<a href="#" onclick="setStyle();">5</a>
Javascript 相关文章推荐
jQuery中after的两种用法实例
Jul 03 Javascript
JS实现同时搜索百度和必应的方法
Jan 27 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
Oct 15 Javascript
浅析Node.js:DNS模块的使用
Nov 23 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
Dec 26 Javascript
js中数组的常用方法小结
Dec 30 Javascript
jQuery展示表格点击变色、全选、删除
Jan 05 Javascript
vuejs父子组件通信的问题
Jan 11 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
vue实现同一个页面可以有多个router-view的方法
Sep 20 Javascript
vue 项目 iOS WKWebView 加载
Apr 17 Javascript
vue3不同环境下实现配置代理
May 25 Vue.js
获取内联和链接中的样式(js代码)
Apr 11 #Javascript
JavaScript在XHTML中的用法详解
Apr 11 #Javascript
JavaScript中的noscript元素属性位置及作用介绍
Apr 11 #Javascript
javascript标签在页面中的位置探讨
Apr 11 #Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
Apr 11 #Javascript
如何使用json在前后台进行数据传输实例介绍
Apr 11 #Javascript
在javascript中对于DOM的加强
Apr 11 #Javascript
You might like
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
django queryset相加和筛选教程
2020/05/18 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
python openpyxl模块的使用详解
2021/02/25 Python
荷兰手表网站:Watch2Day
2018/07/02 全球购物
值传递还是引用传递
2015/02/08 面试题
优秀毕业生求职推荐信范文
2013/11/21 职场文书
师德个人剖析材料
2014/02/02 职场文书
单位租房协议书样本
2014/10/30 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
Python代码实现双链表
2022/05/25 Python