在网站加载时触发一次jQuery事件

时间:2012-08-05 01:18:24

标签: jquery fadein onload

当用户登陆主页时,我正试图仅将div淡化为ON。例如,“站点主页标题”在您登陆网站时淡入,您将导航到“关于”,“联系”页面等,但当您再次单击主页时,“站点主页标题”将不会淡出in。

所以在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再次淡入?

2 个答案:

答案 0 :(得分:1)

如果旧浏览器存在问题,您需要使用Cookie,并且有一个很好的jQuery插件here!

否则我会去localStorage,因为它更容易处理:

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

答案 1 :(得分:0)

根据您使用的后端,您可以检查是否已设置会话或其他Cookie,如果不存在则为fadeIn。

由于您正在使用jQuery,因此可以通过一种简单的方法来设置/获取自己的cookie。我已经快速组合jsfiddle向您展示了一个例子。

编辑: 我应该提一下,这个解决方案需要jquery-cookie插件。如果你想让它在第一次加载后没有fadeIn永久显示,只需将css显示属性设置为阻塞(假设你首先使用css隐藏它):

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

这是updated fiddle