原理:通過存取cookie和dom操作調(diào)用不同的樣式表文件來實現(xiàn)前臺換膚.
換膚示例下載:sour.rar
Html代碼部分:
1.要有一個帶id的樣式表鏈接,我們要通過操作這個鏈接來調(diào)用不同的href.
<link href="css/main0.css" rel="stylesheet" type="text/css" id="cssfile" />
2.皮膚選擇按鈕(后臺為每個li添加onclick事件,觸發(fā)換膚功能)
<ul id="skin"> <li id="skin_0" title="灰色">灰色</li> <li id="skin_1" title="綠色">綠色</li> <li id="skin_2" title="黃色">黃色</li> <li id="skin_3" title="藍色">藍色</li> <li id="skin_4" title="粉色">粉色</li> <li id="skin_5" title="紫色">紫色</li> </ul>
Js部分:
1.換膚方法
//設置cookie,按鈕選中狀態(tài),頁面皮膚 skin.setSkin=function(n){ var skins =$("skin").getElementsByTagName("li"); for (i=0;i<skins.length;i++) { skins[i].className="";//初始化按鈕狀態(tài) } skin.setCookie(n);//保存當前樣式 $("skin_"+n).className="selected";//設置選中皮膚按鈕的樣式 $("cssfile").href="css/main"+n+".css";//設置頁面樣式 }
2.存取cookie
//將當前皮膚n存到cookie skin.setCookie=function(n){ var expires=new Date(); expires.setTime(expires.getTime()+24*60*60*365*1000); var flag="Skin_Cookie="+n; document.cookie=flag+";expires="+expires.toGMTString(); } //返回用戶設置的皮膚樣式 skin.readCookie=function(){ var skin=0; var mycookie=document.cookie; var name="Skin_Cookie"; var start1=mycookie.indexOf(name+"="); if(start1==-1){ skin=0;//如果沒有設置則顯示默認樣式 } else{ var start=mycookie.indexOf("=",start1)+1; var end=mycookie.indexOf(";",start); if(end=-1){ end=mycookie.length; } var values= unescape(mycookie.substring(start,end)); if (values!=null) { skin=values; } } return skin; }
3.綁定換膚按鈕事件
skin.addEvent=function(){ var skins =$("skin").getElementsByTagName("li"); for (i=0;i<skins.length;i++) { skins[i].onclick=function(){skin.setSkin(this.id.substring(5))}; } }
4.頁面加載完成后設置皮膚樣式
window.onload=function(){ skin.setSkin(skin.readCookie());//根據(jù)讀取cookie返回值設置皮膚樣式 skin.addEvent();//綁定按鈕事件
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2860926-1-1.html
本文鏈接:http://www.95time.cn/tech/web/2008/6000.asp
出處:藍色理想
責任編輯:bluehearts
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|