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 相关文章推荐
javascript getElementsByClassName 和js取地址栏参数
Jan 02 Javascript
Javasipt:操作radio标签详解
Dec 30 Javascript
深入学习JavaScript对象
Oct 13 Javascript
深入浅析AngularJS和DataModel
Feb 16 Javascript
JS与jQuery实现隔行变色的方法
Sep 09 Javascript
AngularJS 过滤器(自带和自建)详解
Sep 19 Javascript
vuex实现简易计数器
Oct 27 Javascript
概述javascript在Google IE中的调试技巧
Nov 24 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
Sep 16 Javascript
移动端图片上传旋转、压缩问题的方法
Oct 16 Javascript
Vue动态加载异步组件的方法
Nov 21 Javascript
Vuex 模块化使用详解
Jul 31 Javascript
获取内联和链接中的样式(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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
详解iframe跨域的几种常用方法(小结)
2019/04/29 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
python 安装impala包步骤
2020/03/28 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
成教毕业生自我鉴定
2013/10/23 职场文书
英语专业毕业生自荐信
2013/10/28 职场文书
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
应届生自荐书
2014/06/23 职场文书
离婚被告代理词
2015/05/23 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技