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 跨域访问解决方案
Feb 14 Javascript
javascript getElementsByClassName函数
Apr 01 Javascript
关于JS中prototype的理解
Sep 07 Javascript
Javascript刷新窗口方法小结
Oct 21 Javascript
超赞的jQuery图片滑块动画特效代码汇总
Jan 25 Javascript
在Vue.js中使用Mixins的方法
Sep 12 Javascript
seajs中最常用的7个功能、配置示例
Oct 10 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
Nov 20 Javascript
vue单页开发父子组件传值思路详解
May 18 Javascript
小程序实现多选框功能
Oct 30 Javascript
在layui.use 中自定义 function 的正确方法
Sep 16 Javascript
layer 关闭指定弹出层的例子
Sep 25 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
实现树状结构的两种方法
2006/10/09 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
万能的php分页类
2017/07/06 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
Javascript实现时间倒计时效果
2017/07/15 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
Python实现简单的2048小游戏
2021/03/01 Python
.NET remoting的两种通道是什么
2016/05/31 面试题
生产车间主任的个人自我鉴定
2013/10/25 职场文书
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
竞选演讲稿范文
2013/12/28 职场文书
企业理念标语
2014/06/09 职场文书
简易版租房协议书范本
2014/10/13 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
员工加薪申请报告
2015/05/15 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
浅谈Python魔法方法
2021/06/28 Java/Android
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis
一起来学习Python的元组和列表
2022/03/13 Python
抖音动画片,皮皮虾,《治愈系》动画在用这首REMIX作为背景音乐,Anak ,The last world with you完整版
2022/03/16 杂记