js實(shí)現(xiàn)單一html頁面兩套css切換代碼
更新時(shí)間:2013年04月11日 16:58:06 作者:
研究了一下JS的用setAttribute方法實(shí)現(xiàn)一個(gè)頁面兩份樣式表的效果與大家分享下,感興趣的朋友可以參考下哈,希望可以幫助到你
今天研究了一下JS的用setAttribute方法實(shí)現(xiàn)一個(gè)頁面兩份樣式表的效果,具體方法如下:
第一步:在連接樣式表的元素里定義一個(gè)id,例如
<link href=”1.css” rel=”stylesheet” type=”text/css” id=”css”>
我定義的id是css。
第二步:寫一個(gè)js函數(shù),代碼如下:
<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>
這個(gè)函數(shù)的code可以放在頁面的任何地方。
第三步:為改變頁面的樣式表的連接添加一個(gè)函數(shù)的觸發(fā)事件,代碼如下:
<a href=”#” onClick=”change(1)”>1.css</a>
<a href=”#” onClick=”change(2)”>2.css</a>
該效果在IE和FF下均測試通過,相信大家看完后因該非常明了,利用這個(gè)方法我們可以讓瀏覽者自己選擇需要顯示的樣式表,比如年老者可以選擇一個(gè)字體較大的樣式表。這里需要注意的兩點(diǎn)是:
在這個(gè)例子中函數(shù)名function后面的名字不能為links或者link,如果為links或者link,樣式表將不被改變,具體什么原因我也不大清楚,可能是javascript的保留字符。
另外如果是改變整個(gè)頁面的樣式,你需要在樣式表文件里定義body的高度為100%
方法二:
第一步:導(dǎo)入兩套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函數(shù)
<script type="text/javascript">
var title = "樣式A";
function setStyle(){
//只是樣式A 和樣式B切換
if(title=="樣式A"){
title = "樣式B";
}else{
title = "樣式A";
}
var i,links;
//用dom方法獲取所有l(wèi)ink元素
links = document.getElementsByTagName("link");
//判斷每個(gè)link元素中是否含有style字符串 ,用來判斷此link元素為樣式表link ,同時(shí)判斷此link是否包含title屬性
for(i=0; links[i]; i++){
if(links[i].getAttribute("rel").indexOf("style") != -1 && links[i].getAttribute("title")){
//把所有l(wèi)ink設(shè)為disabled
links[i].disabled = true;
//再來判斷title中是否有指定的title字符串 有則把當(dāng)前的link設(shè)為可視 即激活當(dāng)前的link
if(links[i].getAttribute("title").indexOf(title) != -1){
links[i].disabled = false;
//alert("ok");
}
}
}
}
</script>
第三步:在html標(biāo)簽中調(diào)用切換的js函數(shù)
<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>
第一步:在連接樣式表的元素里定義一個(gè)id,例如
復(fù)制代碼 代碼如下:
<link href=”1.css” rel=”stylesheet” type=”text/css” id=”css”>
我定義的id是css。
第二步:寫一個(gè)js函數(shù),代碼如下:
復(fù)制代碼 代碼如下:
<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>
這個(gè)函數(shù)的code可以放在頁面的任何地方。
第三步:為改變頁面的樣式表的連接添加一個(gè)函數(shù)的觸發(fā)事件,代碼如下:
復(fù)制代碼 代碼如下:
<a href=”#” onClick=”change(1)”>1.css</a>
<a href=”#” onClick=”change(2)”>2.css</a>
該效果在IE和FF下均測試通過,相信大家看完后因該非常明了,利用這個(gè)方法我們可以讓瀏覽者自己選擇需要顯示的樣式表,比如年老者可以選擇一個(gè)字體較大的樣式表。這里需要注意的兩點(diǎn)是:
在這個(gè)例子中函數(shù)名function后面的名字不能為links或者link,如果為links或者link,樣式表將不被改變,具體什么原因我也不大清楚,可能是javascript的保留字符。
另外如果是改變整個(gè)頁面的樣式,你需要在樣式表文件里定義body的高度為100%
方法二:
第一步:導(dǎo)入兩套css文件
復(fù)制代碼 代碼如下:
<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函數(shù)
復(fù)制代碼 代碼如下:
<script type="text/javascript">
var title = "樣式A";
function setStyle(){
//只是樣式A 和樣式B切換
if(title=="樣式A"){
title = "樣式B";
}else{
title = "樣式A";
}
var i,links;
//用dom方法獲取所有l(wèi)ink元素
links = document.getElementsByTagName("link");
//判斷每個(gè)link元素中是否含有style字符串 ,用來判斷此link元素為樣式表link ,同時(shí)判斷此link是否包含title屬性
for(i=0; links[i]; i++){
if(links[i].getAttribute("rel").indexOf("style") != -1 && links[i].getAttribute("title")){
//把所有l(wèi)ink設(shè)為disabled
links[i].disabled = true;
//再來判斷title中是否有指定的title字符串 有則把當(dāng)前的link設(shè)為可視 即激活當(dāng)前的link
if(links[i].getAttribute("title").indexOf(title) != -1){
links[i].disabled = false;
//alert("ok");
}
}
}
}
</script>
第三步:在html標(biāo)簽中調(diào)用切換的js函數(shù)
復(fù)制代碼 代碼如下:
<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>
相關(guān)文章
利用uniapp+vue3+js適配微信隱私協(xié)議開發(fā)指南
這篇文章主要給大家介紹了關(guān)于利用uniapp+vue3+js適配微信隱私協(xié)議開發(fā)指南的相關(guān)資料,適配最新微信小程序隱私協(xié)議開發(fā)指南,兼容uniapp版本,需要的朋友可以參考下2023-12-12
詳解weex默認(rèn)webpack.config.js改造
本篇文章主要介紹了詳解weex默認(rèn)webpack.config.js改造,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01
JavaScript最全公共方法匯總并解析(前端開發(fā)收藏必備)
JavaScript掌握各種常用的公共方法更是提升開發(fā)效率和代碼質(zhì)量的關(guān)鍵,無論你是初學(xué)者還是資深開發(fā)者,了解并熟練運(yùn)用這些方法都能讓你的代碼更加簡潔、高效,本篇博客將為你詳細(xì)匯總并解析最全的JavaScript公共方法,涵蓋數(shù)組、對(duì)象、字符串、日期等各個(gè)方面的常用技巧2024-06-06
非常漂亮的讓背景如此暗淡(一種彈出提示信息時(shí)頁面背景色調(diào)改變的方法)
非常漂亮的讓背景如此暗淡(一種彈出提示信息時(shí)頁面背景色調(diào)改變的方法)...2007-04-04
利用js查找數(shù)組中指定元素并返回該元素的所有索引示例
在js數(shù)組中查找特定的元素相信對(duì)大家來說再熟悉不過了,但越簡單的東西越可能出錯(cuò),小編最近就犯了這樣的錯(cuò)誤,所以想著干脆將實(shí)現(xiàn)的代碼整理下來,方便自己以后需要的時(shí)候,或者有需要的朋友們參考學(xué)習(xí),下面來一起看看吧。2017-03-03
基于JS代碼實(shí)現(xiàn)實(shí)時(shí)顯示系統(tǒng)時(shí)間
這篇文章主要介紹了基于JS代碼實(shí)現(xiàn)實(shí)時(shí)顯示系統(tǒng)時(shí)間的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
JS對(duì)象數(shù)組中如何匹配某個(gè)屬性值
這篇文章主要介紹了JS對(duì)象數(shù)組中如何匹配某個(gè)屬性值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09

