jquery實現的換膚並且能夠重新整理儲存狀態
換膚效果在很多網站都有應用,不過很多這樣的效果並不完善,那就是當重新整理網頁的時候,換膚狀態無法報錯,又回到了預設的效果,通過程式碼例項介紹一下如何將換膚的狀態儲存在cookie中,也就是儘管重新整理也可以保留換膚的效果。
程式碼如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #div_side_0,#div_side_1{ float:left; width:120px; height:450px; } #skin{ margin:10px; padding:5px; width:210px; padding-right:0px; list-style:none; border:1px solid #CCCCCC; overflow:hidden; } #skin li{ float:left; margin-right:5px; width:15px; height:15px; text-indent:-999px; overflow:hidden; display:block; cursor:pointer; background-image:url(mytest/demo/theme.gif); } #skin_0{background-position:0px 0px;} #skin_1{background-position:15px 0px;} #skin_2{background-position:35px 0px;} #skin_3{background-position:55px 0px;} #skin_4{background-position:75px 0px;} #skin_5{background-position:95px 0px;} #skin_0.selected{background-position:0px 15px !important;} #skin_1.selected{background-position:15px 15px !important;} #skin_2.selected{background-position:35px 15px !important;} #skin_3.selected{background-position:55px 15px !important;} #skin_4.selected{background-position:75px 15px !important;} #skin_5.selected{background-position:95px 15px !important;} .title{cursor:pointer;} h1 a{ display:block; margin:10px; padding:10px 20px; width:60px; color:#ffffff; font-size:14px; } h1{background:#999999;} </style> <link href="mytest/css/skin_0.css" rel="stylesheet" type="text/css" id="cssfile" /> <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script src="mytest/jQuery/jquery.cookie.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ var $li =$("#skin li"); $li.click(function(){ switchSkin(this.id); }); var cookie_skin=$.cookie("MyCssSkin"); if(cookie_skin){ switchSkin(cookie_skin ); } }); function switchSkin(skinName){ $("#"+skinName).addClass("selected").siblings().removeClass("selected"); $("#cssfile").attr("href","mytest/css/" + skinName + ".css"); $.cookie( "MyCssSkin",skinName,{ path: '/', expires: 10 }); } </script> </head> <body> <ul id="skin"> <li id="skin_0" class="selected">灰色</li> <li id="skin_1">紫色</li> <li id="skin_2">紅色</li> <li id="skin_3">天藍色</li> <li id="skin_4">橙色</li> <li id="skin_5">淡綠色</li> </ul> <div id="div_side_0"> <div id="news"> <h1 class="title"><a href="#">jQuery</a></h1> </div> </div> <div id="div_side_1"> <div id="game"> <h1 class="title"><a href="#">螞蟻部落</a></h1> </div> </div> </body> </html>
實現了換膚要求,且能夠儲存換膚狀態,程式碼必須在伺服器環境下預覽才能夠有儲存狀態效果,下面介紹一下它的實現過程。
一.實現原理:
當點選按鈕換膚的時候,會將當前使用css檔名稱存入cookie,當重新整理網頁的時候,會從cookie中讀取css檔名,然後使用,這樣就會儲存之前設定的css狀態,於是實現了我們的效果,更多內容可以看程式碼註釋。
二.程式碼註釋:
1.$(function(){}),文件載入完畢再去執行函式中的程式碼。
2.var $li =$("#skin li"),獲取id屬性值為skin的元素下的所有li元素。
3.$li.click(function(){switchSkin(this.id)}),為li元素註冊click事件處理函式,並且呼叫函式進行換膚,引數為當前裡元素的id屬性值。
4.var cookie_skin=$.cookie("MyCssSkin"),獲取指定name名稱的cookie值,這裡是使用的引用cookie操作外掛jquery.cookie.js。
5.function switchSkin(skinName){},此函式實現了換膚效果,在本例中,傳遞的引數是li元素的id屬性值,其實也是css檔名。
6.$("#"+skinName).addClass("selected").siblings().removeClass("selected"),為指定id屬性值的li元素新增selected樣式類,移除其他兄弟li元素的selected樣式類。
7.$("#cssfile").attr("href","mytest/css/" + skinName + ".css"),呼叫對應的css檔案。
8.$.cookie("MyCssSkin",skinName,{path: '/', expires: 10 }),將css檔名存入cookie。
三.相關閱讀:
1.addClass()函式可以參閱jQuery addClass()一章節。
2.siblings()函式可以參閱jQuery siblings()一章節。
3.removeClass()函式可以參閱jQuery removeClass()一章節。
相關文章
- jQuery 操作checkbox翻頁儲存選中狀態jQuery
- 生成二維碼,並且儲存,指定位置的view成圖片,並且儲存到本地相簿View
- 帶貨直播系統,實現簡單的換頭像並儲存
- iNeuOS工業網際網路作業系統,釋出實時儲存方式:實時儲存、變化儲存、定時儲存,增加裝置振動狀態和電能狀態監測驅動,v3.6.2作業系統
- HttpURLConnection 實戰Get/Post 請求並且儲存PDF檔案HTTP
- jquery實現的豎向動態柱狀條效果jQuery
- SpringData JPA中儲存後重新整理並獲取實體Spring
- canvas 儲存與還原狀態Canvas
- Android中正確儲存view的狀態AndroidView
- 獲取微信小程式二維碼並且儲存微信小程式
- 說說Android動態換膚實現原理吧Android
- jquery 判斷email地址是否合法並儲存jQueryAI
- 國產儲存晶片現狀如何?晶片
- Azure Terraform(四)狀態檔案儲存ORM
- Android 元件系列-----Activity儲存狀態Android元件
- jenkins 構建 job 並獲取其狀態的實現Jenkins
- js更換網頁背景顏色並且可以防止重新整理JS網頁
- 點選按鈕實現狀態切換效果
- 換膚功能實現過程
- 利用Dectorator分模組儲存Vuex狀態(下)Vue
- iOS UI狀態儲存和恢復(三)iOSUI
- 利用Dectorator分模組儲存Vuex狀態(上)Vue
- OpenHarmony頁面級UI狀態儲存:LocalStorageUI
- 使用history儲存列表頁ajax請求的狀態
- 自動儲存、靜態儲存和動態儲存
- 簡要說明jquery+jcrop實現的圖片裁剪儲存jQuery
- 使用NAS動態儲存卷建立有狀態應用
- 微信小程式實現換膚功能微信小程式
- 誰能夠提供jive的turbine的實現版本。
- [譯]Android Activity 和 Fragment 狀態儲存與恢復的最佳實踐AndroidFragment
- vue的狀態管理實現Vue
- 分散式儲存Ceph之PG狀態詳解分散式
- 19c pdb如何儲存啟動狀態
- MYSQL innodb buffer 狀態資料的儲存和載入MySql
- jQuery實現的陣列合並效果jQuery陣列
- spring框架中多資料來源建立載入並且實現動態切換的配置例項程式碼Spring框架
- js實現重新整理頁面依然能夠使滾動條滾定在原來位置JS
- MyBatis使用Zookeeper儲存資料庫的配置,可動態重新整理MyBatis資料庫