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

