12

我只想为每个用户或会话显示一次欢迎 div。我知道有 Jquery 选项。由于是 jquery 的新手,我自己无法解决。请帮忙

$(document).ready(function() {
  $("#close-welcome").click(function() {
    $(".welcome").fadeOut(1000);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="welcome">
  <div>
    <h1>Hello..!<br> Welcome to ABC
    <br>
    </h1>
    <h2>We wish you a Great Day..!</h2>
    <br>

    <h2><a id="close-welcome" href="#">Thank you.. and please take me to the     website</a> </h2>
  </div>
</div>

我只想显示这个欢迎页面一次,直到用户关闭浏览器。等待宝贵的帮助

4

3 回答 3

32

设置一个cookie。

$(document).ready(function() {
    if ($.cookie('noShowWelcome')) $('.welcome').hide();
    else {
        $("#close-welcome").click(function() {
            $(".welcome").fadeOut(1000);
            $.cookie('noShowWelcome', true);    
        });
    }
});

您需要包含 jQuery.cookie javascript 文件。

https://raw.githubusercontent.com/carhartl/jquery-cookie/master/src/jquery.cookie.js

于 2013-05-03T08:16:04.390 回答
4

如果您的客户不吃饼干

您可以使用sessionStorage,毕竟这就是它们的确切含义,在整个会话期间保持手头的数据集合。

为了获得最佳用户体验,您应该从现有 CSS 中的初始 [wellcomeElement].style.display = "none" 属性开始。

因此,整个过程将变得如此简单...

  1. 检查欢迎信息是否已显示
  2. 显示!:不采取行动!

完毕。

示例代码:

  "message" in sessionStorage ? 0 :
  [wellcomeElement].style.display = "block",
  sessionStorage.setItem("message",true);

可以将代码片段(但最好是)放在欢迎消息元素之后的脚本标签中。

但是,为了完全向后兼容,您始终可以回退到使用会话名称属性,如下所示:

 /message/.test( name ) ? 0 :
 [wellcomeElement].style.display = "block",
 name = 'message';

问候。

于 2016-12-10T04:28:33.680 回答
1

更好,因为我们在飞行时不会看到闪烁

<a href="" id="close-edu" class="waves-effect"><span class="edu" style="display: none;">New</span></a>

jQuery

$(document).ready(function() {
    if ($.cookie('noShowEducation')) ;
    else {
        $('.edu').show();
        $("#close-edu").click(function() {
            $(".edu").fadeOut(1000);
            $.cookie('noShowEducation');    
        });

    }
});
于 2016-08-21T23:21:48.677 回答