使图像在第一页加载时显示为ONCE,但在后续加载时不显示

时间:2012-01-02 19:53:06

标签: jquery fadeout

我试图让图像从介绍页面到主页的视觉回声〜我已经排序了,(参见其他问题How to slowly FadeOut an image ON LOAD using jQuery),但现在意识到我已经创建了一个刺激性的效果,因为图像加载和淡化每次点击主页链接。

我的问题是,如何从介绍页面中仅加载一次图像?

视觉效果是......

通过点击介绍页面上的我的名字(链接),您可以访问主页,其中有一个简短的名称链接副本(具有相同的坐标并且应用了jquery fadeOut)。

4 个答案:

答案 0 :(得分:2)

选项1:Cookies

您可以轻松跟踪用户是否第一次使用Cookie访问您的网站。由于您已经在使用jQuery,因此可以使用jQuery cookie插件(可在https://github.com/carhartl/jquery-cookie获得)。为了跟踪是否淡入图像,您可以使用此代码段:

if ($.cookie('hasVisited')) {
  // Don't fade the image in...
} else {
  $.cookie('hasVisitied', 'true');
  // Fade image in...
}

请注意,这仅在用户接受Cookie时才有效。如果您希望图像始终为没有启用Cookie客户端的用户淡入,那么该代码段将正常工作。否则,请查看this post如何检测客户端是否启用了cookie;如果不是,请不要让图像淡入。

选项2:URL参数

如果您发现您网站的受众特征的大多数用户未启用Cookie客户端,则可以使用网址参数指定是否淡化图像。

例如,您的主页位于/index,然后主菜单中的链接会链接回/index?nofade=true。然后,在索引页面中,您可以使用jQuery as demonstrated in this blog post来测试参数是否存在。

答案 1 :(得分:1)

正如@Ivan所解释的那样,您需要跟踪事件是否发生(即用户之前访问过吗?)。

最常见的是使用cookie和一些简单的代码完成:

if( $.cookie('visited') ){
// do or don't do something
}

您可以在此处抓取Cookie插件:https://github.com/carhartl/jquery-cookie

答案 2 :(得分:1)

您基本上需要跟踪用户,以便确定用户是否已经遇到图像效果。

您唯一可行的方法是使用 Cookie 或使用client side storage

围绕这些主题进行研究,一旦你理解了,你就可以在这里申请,但正如已经提到的那样,这些东西是微不足道的。

答案 3 :(得分:1)

我已经制作了一个jsfiddle,它有一个如何做到这一点的例子。 http://jsfiddle.net/Jebx8/

这会使用此处的Cookie插件:https://github.com/carhartl/jquery-cookie

$(document).ready(function(){
   if($.cookie("firsttime") != 1)
    {
        $.cookie("firsttime", "1");
        $('#firstonly').text('Show this first time only');
    }
 });