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的滚动条滚动固定div(附演示下载)
Oct 29 Javascript
JS上传前预览图片实例
Mar 25 Javascript
简单实现JS对dom操作封装
Dec 02 Javascript
js实现精确到秒的日期选择器完整实例
Apr 30 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
Jun 07 Javascript
AngularJs 指令详解及示例代码
Sep 01 Javascript
jQuery 插件封装的方法
Nov 16 Javascript
ionic2 tabs使用 Modal底部tab弹出框
Dec 30 Javascript
JS自定义滚动条效果简单实现代码
Oct 27 Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
为什么使用koa2搭建微信第三方公众平台的原因
May 16 Javascript
JS立即执行函数功能与用法分析
Jan 15 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使用数组填充下拉列表框的方法
2015/03/31 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
半角全角相互转换的js函数
2009/10/16 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python数据类型学习笔记
2016/01/13 Python
python nmap实现端口扫描器教程
2020/05/28 Python
python的help函数如何使用
2020/06/11 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
师德建设实施方案
2014/03/21 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
室内趣味活动方案
2014/08/24 职场文书
责任书范本大全
2015/05/11 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python