使用jQuery UI插件實現切換主題功能——經驗小結

最近爲了美化頁面,想在項目中加入主題切換的功能,網上查了好久,決定使用jQuery UI插件來實現,之所以要使用jQuery UI,是因爲它自帶了很多種主題包,只需下載引入即可使用,方便快捷。具體操作步驟如下:

1. 下載主題包

首先來看下jQuery UI提供的主題包:http://jqueryui.com/themeroller/

wKioL1fko6Dyxz9NAADtXcIvl-o252.png

裏面的主題各式各樣,還可以自定義主題,挑選合適的主題包下載,這裏選取前4個,

wKiom1fko8uTI0zLAAB6uEu-I8E623.png

目前最新版本是1.12.1,這裏選用1.10.4版本,個人感覺這個版本比較好用,下載完成後解壓如下圖:

wKioL1fkpCKjPNORAAAfeWPdKHk889.png

wKiom1fkpCOBYRsuAAAyQBXlWVc673.png



對比四個壓縮包中的內容,會發現除了css文件夾中的內容不同,其他內容均相同,這就是問題的切入點,在頁面中可以通過點擊事件更改css的引入路徑來實現主題的切換。

2. 合併四個主題包中的css文件夾

將其他三個主題包中的ui-lightness,ui-darkness,smoothness文件夾放到base文件夾所在的css文件夾中,

wKiom1fkpGfCderAAAAR7wGg7qY149.png

打開index.html,現在的頁面是這個樣子的,

wKioL1fkpIqTCQkUAABOxKuIc0I842.png

爲了實現切換主題的功能,在頁面上添加四個按鈕對應切換四個主題,代碼爲:

          <button id="base">base</button>

          <button id="ui-lightness">ui-lightness</button>

<button id="ui-darkness">ui-darkness</button>

<button id="smoothness">smoothness</button>

按鈕效果是這樣的:

wKioL1fkpOmBPp0cAABKZQyvu9I179.png


這時會發現這些按鈕並沒有被渲染成jQuery UI自帶的效果,仔細觀察index.html頁面代碼,

wKiom1fkpROicfSSAAA0boIfU4k774.png

我們需要對按鈕進行UI,添加以下代碼:

$( "#base" ).button();

           $( "#ui-lightness" ).button();

           $( "#ui-darkness" ).button();

           $( "#smoothness" ).button();

此時再看效果就有了。

wKioL1fkpWDwlbt8AABNdYnUw_g412.png

注:使用UI不同的標籤都要對其進行UI化,否則是沒有效果的,

wKioL1fkpX-j13MzAAA6nGkOwlU084.png

可根據自己的需要對其進行操作。

 

3.利用點擊事件切換主題

wKiom1fkpbuAHumRAAAgbODRWXg690.png

觀察index.html頁面代碼發現,

<link href="css/base/jquery-ui-1.10.4.custom.css" rel="stylesheet">

現在的主題包引用的是base, 要想改爲其他主題,就要修改它的路徑href,爲了便於選定,給<link>加上id

<link id=”ctrl-theme” href="css/base/jquery-ui-1.10.4.custom.css" rel="stylesheet">

接着使用js控制點擊事件,

$("button").click(function(){

get_id = $(this).attr("id");//獲取當前被點擊按鈕的id

new_href = "css/"+get_id+"/jquery-ui-1.10.4.custom.css";//形成新路徑

$("#ctrl-theme").attr("href",new_href);//賦給<link>標籤的href

});

此時功能已經實現了,點擊不同的按鈕將切換至不同的主題

wKiom1fkpj2S8yQSAABM54uRUBw525.png

wKioL1fkpj6im0Q0AABTmwkLgEc232.png

wKiom1fkpj_iXTvQAABYHuT8cqs795.png



4.最後將用戶選擇的主題信息存放到cookie,完成。

是不是很方便呢^。^


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章