2012-08-05 63 views
0

我試圖在用戶登陸主頁時僅對一個div進行淡入淡出。例如,當您登陸網站時,「網站首頁標題」會淡入,您將瀏覽到關於「聯繫人」頁面等內容,但當您再次單擊主頁時,「網站主頁標題」將不會褪色在jQuery事件在網站加載時觸發一次

於是就在div我剛剛拿到了:

$('#home-title').fadeIn(500); 

所以我的問題是,現在,每當你走在主頁它總是淡化它......很明顯,因爲這就是代碼告訴它要做的。但是我添加了什麼,所以只有當你第一次登陸主頁時纔會發生一次?

[對不起!下面更詳細地說明]

我有這樣的:

$(document).ready(function() { 
    $('.faded').hide(); 
}); 


$(window).load(function() {  
    $(".faded").each(function(i) { 
     $(this).delay(i * 500).fadeIn(); 
    }); 
} 

所以.faded只連接到主頁上的div的。我想知道jQuery是否有可能認識到,如果它在其他頁面之一上,並且你點擊回到主頁 - 它已經在元素中淡入淡出,所以不需要再次這樣做。但是,如果用戶關閉瀏覽器或完全離開網站,但又回到它,我們可以讓.faded div再次淡入?

回答

1

如果舊的瀏覽器是一個問題,你需要的cookie,並有一個很好的jQuery插件here!

否則,我會去本地存儲,因爲它更容易一點處理:

var elem = $('#home-title'); 

if (elem.length) {         //you're on the first page 
    if (!sessionStorage.getItem('HasVisitedFirst')) { //check if we have been here 
     elem.fadeIn(500);       //if not, fade in 
     sessionStorage.setItem('HasVisitedFirst',true);//and set a value to remember 
    } 
} 

FIDDLE

+0

嘿給了這個去,但我仍然希望它在第一次加載後可見。當我刷新頁面時,使用它就會消失。 – lchong 2012-08-05 01:44:00

+0

嗯,是的!這就是點!你是否期望它每次都工作,或者只在第一次訪問時工作? – adeneo 2012-08-05 01:49:31

+0

對不起@adeneo - 我附加更好的描述,我想要得到以上:) – lchong 2012-08-05 01:51:32

0

根據您使用的是什麼後端,您可以檢查是否已設置會話或其他cookie,如果不存在,則顯示淡入。

由於您使用的是jQuery,因此您可以輕鬆設置/獲取自己的Cookie。我已經放了一個快速jsfiddle向你展示一個例子。

編輯: 我應該提到,這個解決方案需要jquery-cookie插件。如果你想讓它先裝後沒有淡入永久顯示,剛剛成立的CSS display屬性來阻止(假設你使用CSS來隱藏它擺在首位):

$('#home-title').css('display', 'block'); 

這裏是一個updated fiddle

+0

感謝您的更新信息! :)這是正確的嗎? (函數(i){(this).delay(i * 500))(函數(){if(!$。cookie('。faded')){ \t $('。faded')。 ).fadeIn(); }); $ .cookie(1) '褪色。';} 其他 { $()的CSS( '顯示器 ' '塊')' 褪色。';} }); – lchong 2012-08-05 02:14:16