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的运行机制和设计理念分析
Apr 05 Javascript
js验证电话号码与手机支持+86的正则表达式
Jan 23 Javascript
jQuery中ajax的load()方法用法实例
Dec 26 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
Mar 03 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
Jun 23 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
js使用generator函数同步执行ajax任务
Sep 05 Javascript
详解Vue源码学习之双向绑定
Apr 10 Javascript
微信小程序位置授权处理方法
Jun 13 Javascript
ES6如何用一句代码实现函数的柯里化
Jan 18 Javascript
一文帮你理解PReact10.5.13源码
Apr 03 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
php语言流程控制中的主动与被动
2012/11/05 PHP
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
让焦点自动跳转
2006/07/01 Javascript
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
利用python发送和接收邮件
2016/09/27 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
python生成九宫格图片
2018/11/19 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
python实现学生成绩测评系统
2020/06/22 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
小学先进集体事迹材料
2014/05/31 职场文书
红头文件任命书范本
2014/06/05 职场文书
低碳生活的宣传标语
2014/06/23 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
初二学生评语大全
2014/12/26 职场文书
疾病证明书
2015/06/19 职场文书