中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

使用jQuery實現Web頁面換膚功能的要點解析
來源:易賢網 閱讀:1146 次 日期:2016-07-01 11:49:47
溫馨提示:易賢網小編為您整理了“使用jQuery實現Web頁面換膚功能的要點解析”,方便廣大網友查閱!

網頁換膚的實質就是切換CSS樣式,關鍵是給用戶做出點擊切換的功能以及換膚完成之后的緩存記錄功能,下面我們就來看一下使用jQuery實現Web頁面換膚功能的要點解析:

網頁換膚是一門老技術了,老的現在都不怎么流行了。但是,有時候有些客戶就是想要這個換膚功能。于是就實踐做了一下網頁換膚,結果遇到了很多問題。

網頁換膚的基本原理

基本原理很簡單,就是使用 JS 切換對應的 CSS 樣式表。例如導航網站 Hao123 的右上方就有網頁換膚功能。除了切換 CSS 樣式表文件之外,通常的網頁換膚還需要通過 Cookie 來記錄用戶之前更換過的皮膚,這樣下次用戶訪問的時候,就可以自動使用上次用戶配置的選項。

那么基本工作流程就出來了:訪問網頁——JS 讀取 Cookie ——如果沒有,使用默認皮膚——如果有,使用指定皮膚;用戶點擊換膚選項——JS 控制替換對應的 CSS 樣式表——將皮膚選項寫進 Cookie 保存。

網頁換膚事先需要的準備

首先你可能要準備多套 CSS 樣式表文件,當點擊換膚按鈕的是,使用 JS 來切換對應的 CSS 樣式表。之后,就是在網頁上增加一個 ul li 列表,用 CSS 修飾一下做成換膚選項。例如:

名單

下面我們就來看具體功能代碼。

實現點擊切換對應 CSS 功能

首先,我們的皮膚選項的 HTML 結構是這樣的

<div class=”skin”>

  <ul>

    <li class=”skin1 hover”></li>

    <li class=”skin2”></li>

    <li class=”skin3”></li>

    <li class=”skin4”></li>

  </ul>

</div>

然后在網頁的頂部偏下的位置放上一個空的 link 標簽,我們將會使用 jQuery 為這個 link 標簽賦予不同的 CSS 文件實現切換效果

復制代碼 代碼如下:

<link rel=”stylesheet” href=”” data-href=”style-Teal.css” type=”text/css” media=”screen” class=”skincsslittle” />

其中,我自定義了一個 data-href 屬性來存放系統默認的皮膚,這樣當頁面加載完成之后,如果 JS 沒有檢測到 Cookie 中的皮膚信息,就會把 data-href 中的內容賦值上去。之后就是大家熟悉的 jQuery 代碼:

jQuery(‘.skin li').click(function(){

  var currentClass = jQuery(this).attr(‘class');

  jQuery(this).siblings().removeClass(‘hover');

  jQuery(this).addClass(‘hover');

  var cc = currentClass.substring(0,5);

  cc = convertcsslittle(cc);

  var skincssurl = jQuery(‘.stylecssurl').attr(‘href').substring(0,jQuery(‘.stylecssurl').attr(‘href').indexOf(‘style')) + cc;

  jQuery(‘.skincsslittle').attr(“href”,skincssurl);

createCookie('skin',currentClass,365);

});

大體的邏輯就是獲取到當前皮膚的 class 然后截取出來 skin* 然后通過一個函數得到其對應的 CSS 文件。skincssurl 記載的是網頁的非皮膚 CSS 文件,主要用來獲取當前網頁的 CSS 目錄 URL ,最后將混合好的 CSS 皮膚文件賦值準備好的空 link 中,實現換膚。

增加 Cookie 記錄皮膚功能

這里主要用到兩個自定義的函數,用來創建、讀取 Cookie 內容。

function readCookie(name) {

 var nameEQ = name + “=”;

 var ca = document.cookie.split(‘;');

 for(var i=0;i < ca.length;i++) {

  var c = ca[i];

  while (c.charAt(0)==' ‘) c = c.substring(1,c.length);

  if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

 }

 return false;

}

function createCookie(name,value,days) {

if (days) {

var date = new Date();

date.setTime(date.getTime()+(days2460601000));

var expires = “; expires=”+date.toGMTString();

}

else expires = “”;

document.cookie = name+”=”+value+expires+”; path=/“;

}

你只需要把這兩個函數復制到 JS 代碼區域即可。在 jQuery 點擊換膚的功能代碼中,最后一句就創建了一個 Cookie,等網頁加載完成之后,我們需要使用 JS 讀取 Cookie 內容,然后使用 if 判斷:

var cccc = readCookie(“skin”);

if (cccc){

cccc = cccc.substring(0,5);

jQuery(‘.'+cccc).addClass(‘hover').siblings().removeClass(‘hover');

ccc = convertcsslittle(cccc);

var skincssurl = jQuery(‘.stylecssurl').attr(‘href').substring(0,jQuery(‘.stylecssurl').attr(‘href').indexOf(‘style')) + ccc;

jQuery(‘.skincsslittle').attr(“href”,skincssurl);

}else{

var currentcss = jQuery(‘.skincsslittle').attr(“data-href”);

var currentcssname = currentcss.substring(currentcss.indexOf(‘style'),currentcss.length);

currentcssname = defaulttoclass(currentcssname);

jQuery(‘.'+currentcssname).addClass(‘hover').siblings().removeClass(‘hover');

jQuery(‘.skincsslittle').attr(“href”,jQuery(‘.skincsslittle').attr(“data-href”));

}

不要被這么亂的代碼嚇暈了,實際上邏輯很簡單,先獲取 Cookie 的皮膚值,如果有就為對應的皮膚選項高亮并且轉換得到對應的 CSS 皮膚文件賦值。如果沒有 Cookie 內容,就將 data-href 屬性中記錄的值賦值進去。

網頁換膚的閃爍問題和不完美解決方案

網頁換膚中,會遇到閃爍的問題。就是當點擊切換按鈕的時候,更換顏色或者圖片會閃爍一下。或者使用 Cookie 記錄之后,用戶使用了非默認的皮膚,也會閃爍一下,先出現默認的樣式然后再閃爍切換成用戶自己選擇的樣式。

這種影響用戶體驗的現象肯定要徹底消滅,但是一直沒有找到完美的解決方法。因為瀏覽器默認的是優先渲染 CSS 之后再加載 JS,特別是使用 Cookie 記錄的皮膚,先渲染現有的 CSS 之后,JS 才能讀取然后切換到皮膚。原理是這樣的,跟客戶協商之后,客戶給出了一個“無閃爍”的換膚效果示例,是 MG12 很早的一款主題。同樣的 Cookie 記錄等,但是他的作品確實沒有閃爍情況。

于是我就查看了他的 JS 代碼,沒有發現特殊之處,后來才想明白,這種閃爍問題,在圖片比較多的網頁中效果尤其明顯,因為切換的 CSS 需要加載圖片需要更多時間。而 MG12 那款主題中,切換的 CSS 文件只是改變了幾個 background 顏色,加載速度快到你眼球反應不過來就造成了不閃爍的假象。

不完美解決方案也是有的,點擊切換按鈕之后的閃爍情況,也是因為要加載圖片等,那么我們可以在訪問網頁的時候,使用預加載技術將其他皮膚圖片預加載或者使用 CSS Sprite 技術做成一張大圖片。

至于 Cookie 記錄閃爍的問題,這是瀏覽器渲染的硬傷,只能盡量減少換膚需要改變的地方,盡量壓縮圖片減小體積。然后優先加載沒有任何皮膚的基礎樣式,之后使用 JS 加載默認樣式或者讀取 Cookie 獲取的皮膚選項。這樣處理,訪問網頁的時候會先顯示白色或者無顏色,之后直接切換成之前選擇的皮膚的顏色,而不會從默認的顏色閃爍變成另一種顏色從而提升一定的用戶體驗。

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美/亚洲一区| 黄色欧美日韩| 亚洲图片欧美日产| 在线观看亚洲精品| 国产精品人人做人人爽| 欧美精品一区视频| 美日韩免费视频| 久久亚洲综合| 久久久久se| 久久精品国产免费看久久精品| 夜夜嗨网站十八久久| 亚洲激情成人| 亚洲欧洲综合| 欧美视频在线观看 亚洲欧| 麻豆视频一区二区| 免播放器亚洲| 欧美激情91| 欧美高清视频免费观看| 免费视频一区二区三区在线观看| 久久精品盗摄| 久久久久久久欧美精品| 久久精品视频网| 久久久av水蜜桃| 久久在线精品| 欧美成人蜜桃| 欧美日韩系列| 国产精品久久久久久久久| 国产老肥熟一区二区三区| 国产精品视频免费在线观看| 国产精品一二一区| 国模一区二区三区| 亚洲电影在线播放| 亚洲日本精品国产第一区| 日韩一本二本av| 亚洲专区在线| 久久国产精品第一页| 久久综合九色综合网站| 欧美区亚洲区| 国产欧美欧美| 亚洲第一精品福利| 亚洲麻豆av| 亚洲欧美春色| 久久全球大尺度高清视频| 欧美高清视频在线播放| 欧美午夜无遮挡| 狠狠色综合网站久久久久久久| 欧美日韩在线播放三区四区| 国产伦精品一区二区三区照片91 | 激情五月综合色婷婷一区二区| 国产午夜久久久久| 亚洲精品欧美一区二区三区| 亚洲一区影音先锋| 久久亚洲免费| 国产精品高潮视频| 亚洲高清久久久| 亚洲在线观看| 欧美成人综合网站| 国产视频不卡| 日韩视频免费| 久久久国产午夜精品| 欧美日韩亚洲综合在线| 国内精品视频在线观看| 99综合电影在线视频| 久久久久久久久一区二区| 国产精品va在线| 亚洲国产清纯| 欧美在线视频观看| 欧美日韩成人网| 黄色成人91| 亚洲欧美日韩国产精品| 欧美成人精品激情在线观看| 国产欧美不卡| 亚洲一二三区精品| 欧美激情一区二区三级高清视频 | 今天的高清视频免费播放成人| 日韩亚洲欧美精品| 一区二区三区精品在线| 久久国产视频网站| 国产精品男女猛烈高潮激情| 久久在线免费视频| 欧美伊人久久久久久久久影院| 国产精品无码专区在线观看 | 久久久久久午夜| 欧美一区视频在线| 免费成人av| 午夜精品免费视频| 91久久在线| 国产精品久久久久久亚洲调教 | 一本色道**综合亚洲精品蜜桃冫| 久久久久国产精品麻豆ai换脸| 国产精品白丝av嫩草影院| 日韩一区二区电影网| 免费观看成人网| 永久域名在线精品| 久久精品国产亚洲一区二区三区 | 一二美女精品欧洲| 欧美不卡一区| 亚洲激情网站免费观看| 男人插女人欧美| 欧美激情久久久久久| 国产精品久久激情| 国产精品一级| 91久久久久久久久| 99国产精品久久久久老师| 国内自拍亚洲| 欧美日韩p片| 欧美一区二区三区视频| 欧美一级一区| 欧美一区二区精美| 久久国产加勒比精品无码| 欧美日本久久| 99国产精品久久久| 老司机免费视频一区二区三区 | 欧美日韩一区二区三| 亚洲国产综合91精品麻豆| 久久精品1区| 亚洲国产精品尤物yw在线观看| 欧美成人高清| 一区二区三区.www| 国产精品一区二区久久久久| 日韩一区二区免费高清| 欧美精品 国产精品| 一区二区三区视频在线看| 午夜日韩电影| 国产一区二区成人| 奶水喷射视频一区| 欧美在线三区| 亚洲美女免费精品视频在线观看| 亚洲精品老司机| 欧美久久一级| 日韩亚洲成人av在线| 欧美精品日韩综合在线| 日韩一级裸体免费视频| 欧美精品91| 国产乱子伦一区二区三区国色天香 | 欧美日韩999| 亚洲精品免费在线| 欧美四级剧情无删版影片| 午夜精品久久久久久久99热浪潮| 欧美精品久久久久久| 亚洲精品一区二区三| 欧美美女视频| 欧美精品福利| 在线天堂一区av电影| 国产精品视频免费观看www| 欧美一级大片在线观看| 激情视频亚洲| 国产精品videosex极品| 久久夜色精品| 亚洲黄色三级| 亚洲激精日韩激精欧美精品| 国产亚洲免费的视频看| 一区二区高清| 国产亚洲精品aa| 久久精品视频在线| 国产综合视频| 欧美激情精品久久久久久| 午夜日韩视频| 久久久精品2019中文字幕神马| 亚洲综合日本| 久久久亚洲国产美女国产盗摄| 亚洲激情啪啪| 一区二区三区国产在线观看| 亚洲婷婷在线| 久久九九精品99国产精品| 欧美大尺度在线| 久久久之久亚州精品露出| 久久大综合网| 久久久久久久久久久一区| 91久久精品www人人做人人爽| 欧美亚洲成人精品| 国产精品久久久久毛片大屁完整版| 免费试看一区| 久久国产精品一区二区| 久久综合久色欧美综合狠狠| 国产精品v欧美精品v日韩 | 亚洲免费久久| 99热这里只有成人精品国产| 日韩天堂在线观看| 亚洲免费网址| 另类综合日韩欧美亚洲| 国产欧美午夜| 亚洲国产裸拍裸体视频在线观看乱了 | 国产精品久久久久秋霞鲁丝| 亚洲高清成人| 亚洲线精品一区二区三区八戒| 久久都是精品| 欧美剧在线免费观看网站| 亚洲高清久久| 在线日韩日本国产亚洲| 亚洲国产你懂的| 免费看的黄色欧美网站| 狠狠综合久久av一区二区老牛| 亚洲精品久久久一区二区三区| 一区二区欧美精品| 性欧美xxxx视频在线观看| 欧美日韩久久精品| 中日韩美女免费视频网址在线观看| 欧美成人免费在线视频| 在线观看视频欧美|