最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JQuery 網(wǎng)站換膚功能實(shí)現(xiàn)代碼

 更新時(shí)間:2009年11月02日 02:12:55   作者:  
我第一次看到樣式表切換器是在A List Apart或者Simple Bits,那是兩個(gè)設(shè)計(jì)師最應(yīng)該去的網(wǎng)站。
從那以后,我找到了很多可以讓訪客通過鼠標(biāo)點(diǎn)擊某個(gè)地方切換樣式表的方法。但最近我要寫一篇如何 使用jQuery編寫簡單代碼實(shí)現(xiàn)它的教程。
我將向你們逐步解說整個(gè)的過程,不僅僅因?yàn)橐故緅Query代碼的簡介,同時(shí)也要揭示jQuery庫中的若干高級特性。
首先,代碼
復(fù)制代碼 代碼如下:

$(document).ready(function() {
$('.styleswitch').click(function()
{
switchStylestyle(this.getAttribute("rel"));
return false;
});
var c = readCookie('style');
if (c) switchStylestyle(c);
});
function switchStylestyle(styleName)
{
$('link[@rel*=style][title]').each(function(i)
{
this.disabled = true;
if (this.getAttribute('title') == styleName) this.disabled = false;
});
createCookie('style', styleName, 365);
}

其他這里沒有提到的部分是你將在后面看到的創(chuàng)建和讀取cookie的函數(shù)。
熟悉的開篇

$(document).ready(function(){ $('.styleswitch').click(function()……告訴jQuery“以最快的速度查找所有包含對象名‘styleswitch'的元素,并在他們被鼠標(biāo)點(diǎn)擊時(shí)執(zhí)行一個(gè)函數(shù)”。
看起來不錯(cuò)。當(dāng)鼠標(biāo)點(diǎn)擊預(yù)先指定的元素時(shí),switchStylestyle函數(shù)將被調(diào)用。從現(xiàn)在開始是重點(diǎn)。
這句話什么意思?
第一次看到這句代碼的時(shí)候我的腦子有些卡殼:
$('link[@rel*=style]').each(function(i) {
在互聯(lián)網(wǎng)上搜索了一下后我空手而歸。最后不得不找到了jQuery的作者John Resig,向他咨詢。
他直接給了我一個(gè)jQuery網(wǎng)站的頁面地址,里面講解了若干jQuery提供的高級特性(xpath),可以用來查找并操作頁面中的若干元素。
如果你看過這些東西你就能明白上面那句神秘的代碼的含義是告訴jQuery“查找所有帶rel屬性并且屬性值字符串中包含‘style'的link鏈接元素”。
讓我們看看如何編寫包含一個(gè)主樣式表,兩個(gè)備用樣式表的頁面:
<link rel="stylesheet" type="text/css" href="styles1.css" title="styles1" media="screen" /><link rel="alternate stylesheet" type="text/css" href="styles2.css" title="styles2" media="screen" /><link rel="alternate stylesheet" type="text/css" href="styles3.css" title="styles3" media="screen" />我們可以看到所有樣式表都含有一個(gè)包含‘style'字串的rel屬性。
所以結(jié)果一目了然,jQuery輕松定位了頁面中的樣式表鏈接。
下一步?
each()函數(shù)將遍歷所有這些樣式表鏈接,并執(zhí)行下一行中的代碼:
this.disabled = true;if (this.getAttribute('title') == styleName) this.disabled = false;“首先禁用所有的樣式表鏈接,然后開啟任何title屬性值與switchStylestyle函數(shù)傳遞過來的字串相同的樣式表”
一把抓啊,不過很有效。
現(xiàn)在我們需要保證的是那些樣式表存在并且有效。
完整代碼和演示
既然 Kelvin Luck已經(jīng)編寫了這些代碼,我就不在這里重復(fù)了。
DEMO
我相信Kelvin的靈感是從 這個(gè)網(wǎng)站那里得到的,我們正好可以看看使用其他工具實(shí)現(xiàn)這個(gè)功能是否要比jQuery更加復(fù)雜冗長。
完整的styleswitch.js
復(fù)制代碼 代碼如下:

/**
* Styleswitch stylesheet switcher built on jQuery
* Under an Attribution, Share Alike License
* By Kelvin Luck ( http://www.kelvinluck.com/ )
**/
(function($)
{
$(document).ready(function() {
$('.styleswitch').click(function()
{
switchStylestyle(this.getAttribute("rel"));
return false;
});
var c = readCookie('style');
if (c) switchStylestyle(c);
});
function switchStylestyle(styleName)
{
$('link[@rel*=style][title]').each(function(i)
{
this.disabled = true;
if (this.getAttribute('title') == styleName) this.disabled = false;
});
createCookie('style', styleName, 365);
}
})(jQuery);
// cookie functions http://www.quirksmode.org/js/cookies.html
function createCookie(name,value,days)
{
if (days)
{
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
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 null;
}
function eraseCookie(name)
{
createCookie(name,"",-1);
}
// /cookie functions

相關(guān)文章

  • 原生javascript實(shí)現(xiàn)的分頁插件pagenav

    原生javascript實(shí)現(xiàn)的分頁插件pagenav

    這幾天要做一個(gè)前臺頁面,涉及到分頁,不想自己去寫所以在網(wǎng)上找jquery看有沒有好用一點(diǎn)的分頁組件,結(jié)果發(fā)現(xiàn)有很多,但是都很麻煩,看到了這個(gè)叫pagenav的發(fā)現(xiàn)相對來說還是很容易上手的,于是就直接用了,在我看來,能解決問題的辦法就是好辦法.越簡單越好.
    2014-08-08
  • jquery ajax,ashx,json的用法總結(jié)

    jquery ajax,ashx,json的用法總結(jié)

    本篇文章主要是對jquery ajax,ashx,json的用法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 以WordPress為例講解jQuery美化頁面Title的方法

    以WordPress為例講解jQuery美化頁面Title的方法

    鼠標(biāo)移動到超鏈接時(shí)顯示Title提示即是所謂Title美化的一般手段,這里我們就以WordPress為例講解jQuery美化頁面Title的方法,需要的朋友可以參考下
    2016-05-05
  • jquery實(shí)現(xiàn)鼠標(biāo)懸浮彈出氣泡提示框

    jquery實(shí)現(xiàn)鼠標(biāo)懸浮彈出氣泡提示框

    這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)鼠標(biāo)懸浮彈出氣泡提示框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • jQuery+html5實(shí)現(xiàn)div彈出層并遮罩背景

    jQuery+html5實(shí)現(xiàn)div彈出層并遮罩背景

    今天在項(xiàng)目中用到了一個(gè)很好的div彈出層效果,jQuery+html5實(shí)現(xiàn)div彈出層并遮罩背景,效果非常棒,拿出來和大家一起分享!
    2015-04-04
  • jQuery中table數(shù)據(jù)的值拷貝和拆分

    jQuery中table數(shù)據(jù)的值拷貝和拆分

    在開發(fā)的過程中,經(jīng)常會遇到彈出框顯示前一頁table列表的情況,這時(shí)候會有好多方法來來解決。下面小編給大家介紹怎么用jquery將值拷貝到第二頁并拆分拷貝的值,需要的朋友參考下
    2017-03-03
  • jQuery+ajax實(shí)現(xiàn)用戶登錄驗(yàn)證

    jQuery+ajax實(shí)現(xiàn)用戶登錄驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了jQuery+ajax實(shí)現(xiàn)用戶登錄驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • jQuery獲取與設(shè)置iframe高度的方法

    jQuery獲取與設(shè)置iframe高度的方法

    這篇文章主要介紹了jQuery獲取與設(shè)置iframe高度的方法,涉及jQuery針對iframe元素的獲取與設(shè)置相關(guān)操作技巧,非常簡單實(shí)用,需要的朋友可以參考下
    2016-08-08
  • 基于BootStrap環(huán)境寫jQuery tabs插件

    基于BootStrap環(huán)境寫jQuery tabs插件

    這篇文章主要介紹了基于BootStrap環(huán)境寫jQuery tabs插件的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • 使用jquery的cookie實(shí)現(xiàn)登錄頁記住用戶名和密碼的方法

    使用jquery的cookie實(shí)現(xiàn)登錄頁記住用戶名和密碼的方法

    今天小編就為大家分享一篇關(guān)于使用jquery的cookie實(shí)現(xiàn)登錄頁記住用戶名和密碼的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論

阜宁县| 湖南省| 襄樊市| 屯留县| 凯里市| 罗源县| 崇阳县| 崇义县| 崇义县| 鲁甸县| 铜梁县| 浦东新区| 土默特左旗| 罗江县| 治县。| 宁武县| 平原县| 五指山市| 兴安盟| 永安市| 阳谷县| 安乡县| 泸州市| 阜新| 英吉沙县| 连城县| 胶南市| 东安县| 沂水县| 桓台县| 长宁区| 醴陵市| 秦皇岛市| 大悟县| 从化市| 奉节县| 阜南县| 锦州市| 丽江市| 栖霞市| 乳源|