我有一個簡單的jQuery功能 - 只是fadeouts索引網頁div:運行jQuery函數只是一次每次訪問
$('#startup').delay(1500).fadeOut(2000);
這只是一個消息,並啓動屏幕的用戶會看到當他們第一次來到網站。
我想知道是否有人知道如何讓啓動消息每次訪問只顯示一次。 EG:如果用戶返回索引頁面來說aboutus頁面,我不希望啓動div再次出現。
有沒有人知道一種方法來實現這一目標?
謝謝!
我有一個簡單的jQuery功能 - 只是fadeouts索引網頁div:運行jQuery函數只是一次每次訪問
$('#startup').delay(1500).fadeOut(2000);
這只是一個消息,並啓動屏幕的用戶會看到當他們第一次來到網站。
我想知道是否有人知道如何讓啓動消息每次訪問只顯示一次。 EG:如果用戶返回索引頁面來說aboutus頁面,我不希望啓動div再次出現。
有沒有人知道一種方法來實現這一目標?
謝謝!
您可以將訪問的時間存儲在localStorage中並進行檢查。
var now = (new Date()).getTime();
var lastTime = 0;
var lastTimeStr = localStorage['lastTime'];
if (lastTimeStr) lastTime = parseInt(lastTimeStr, 10);
if (now - lastTime > 24*60*60*1000) {
// do animation
}
localStorage['lastTime'] = ""+now;
編輯:我做了一個小提琴證明它:
http://jsfiddle.net/dystroy/jAjLB/
你會看到動畫的第一次,但不是第二個,除非你等一分鐘(你可以將它設置爲幾個小時爲您的網站)。
您可以設置一個可以檢查的cookie,看看這是否是第一次訪問。
如果您希望顯示「每次訪問」,則可以將其設置爲在會話結束時過期。
我會使用localstorage來做這個...... Cookie與頁面標題一起發送,如果服務器不關心這個值,就不需要使用它們。
/* Here are some utility localStorage functions */
function store_data(data, key) {
if (!window.localStorage || !window.JSON) {
return;
}
key = key || data_key;
localStorage.setItem(key, JSON.stringify(data));
}
function get_data(key) {
if (!window.localStorage || !window.JSON) {
return;
}
key = key || data_key;
var item = localStorage.getItem(key);
if (!item) {
return;
}
return JSON.parse(item);
}
function remove_data(key) {
if (!window.localStorage || !window.JSON) {
return;
}
key = key || data_key;
localStorage.removeItem(key);
}
/* and the check */
var now = (new Date()).getTime(),
then = parseInt(get_data('last_visit'), 10) || 0,
diff = now - then;
if(diff > 24*60*60*1000) {
$('#startup').delay(1500).fadeOut(2000);
store_data('last_visit', (new Date()).getTime());
}
感謝 - 但我似乎無法得到它的工作... – MeltingDog
這裏有一個[小提琴](http://jsfiddle.net/dystroy/9RRyf/)證明它。有用。但是您必須等待24小時才能再次看到警報(您可以在代碼中進行調整)。 –
Thanks dystroy - 問題是我的原始代碼$('#startup')。delay(1500).fadeOut(2000);不再有效 – MeltingDog