jQuery:仅在页面加载时淡入一次

3

我有一个简单的脚本来淡入网站首页,类似于:

jQuery(document).ready(function(){    
  $('body.home').hide();
  $('body.home').fadeIn('slow');
});

然而,我希望脚本仅在网站初始加载时运行一次。在随后的点击中,例如用户转到次要页面然后返回主页时,我不希望主页再次淡入,它应该只是主页加载而没有淡入效果。

有没有办法仅使用jQuery代码实现这一点,可能通过某种方式仅执行函数一次,然后停止其执行?非常感谢您提供任何提示和代码片段!


你想让这个淡入效果在每个“浏览会话”中只发生一次,还是只在他们第一次访问网站时发生(即,如果他们一个月后返回,仍然不会出现淡入效果...)? - jmar777
3个回答

8
您可以设置一个cookie。
$(function () {
  if ($.cookie("loaded") != "true") {
      $('body.home').hide().fadeIn('slow');
      $.cookie("loaded", "true");
  }
});

1

你可以深入了解PHP世界,并检查是否存在会话,如果没有,则淡入。如果您想走这条路,我可以发布一些代码。

如果您是PHP和会话的新手,请快速阅读以下内容: http://www.tizag.com/phpT/phpsessions.php


0
如果您只通过AJAX调用加载站点的“其他部分”,则可以在全局JavaScript命名空间中存储一个值,该值仅指示您已执行该操作。
否则,如果您正在进行完整的页面刷新(重定向到另一个站点),则没有干净的JavaScript解决方案。在这种情况下,您需要存储一个cookie,利用本地存储或使用服务器脚本。

我明白了。我只是希望有一种方法可以停止函数的重复执行,这样在当前浏览器会话期间就不会出现淡入淡出效果,但我理解你所说的“完整页面刷新”。我想设置cookie可能是唯一的解决方案。谢谢大家! - ninusik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接