我有一个简单的JQuery函数 - 只需在索引页面上淡出div:
$('#startup').delay(1500).fadeOut(2000);
这只是一个启动屏幕,其中包含用户第一次访问该网站时看到的消息。
我想知道是否有人知道如何在每次访问时只显示一次启动消息。 EG:如果用户从aboutus页面导航回索引页面,我不希望再次出现启动div。
有谁知道实现这个目标的方法?
谢谢!
答案 0 :(得分:6)
您可以将访问时间存储在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/
你会第一次看到动画,但不是第二次动画,除非你等待一分钟(你可以为你的网站设置几个小时)。
答案 1 :(得分:2)
您可以设置一个可以检查的Cookie,看看这是否是第一次访问。
如果您希望每次访问都显示“
”,则可以设置为在会话结束时到期。
答案 2 :(得分:1)
我会将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());
}