每次访问显示一次Div

时间:2012-12-05 18:33:15

标签: javascript jquery cookies

在我的网站上,我有一个滑块只显示在主页上。我的主页看起来像这样:

<body>
  <div class="wrapper">
     <div class="header"></div>
     <div class="slider"></div>
   <div class="maincontent"></div>
 </div>
</body>

我的页面是相同的布局,除了我只想在第一页上显示Slider div。因此,当用户第一次到达网站时,他们可以看到滑块,但如果他们转到不同的页面,滑块就会消失。

我想知道是否有办法用jquery做到这一点?饼干?如果有人有任何建议,请告诉我如何做到这一点。谢谢!

3 个答案:

答案 0 :(得分:4)

是的,有办法做到这一点。实际上,有多种方式。您可以使用Javascript和PHP等服务器端脚本语言来完成。我建议使用服务器端脚本语言,因为如果不使用元素,则向页面添加元素没有意义,而它确实占用了很少的带宽。无论如何,使用这两种方法的例子如下:

使用PHP:

<body>
<div class="wrapper">
<div class="header"></div>
<?php

if (!isset($_COOKIE['visisted'])) {
    setcookie('visited', true, time() + 3600 * 24); // Save a cookie for 1 day
    echo '<div class="slider"></div>';
}

?>
<div class="maincontent"></div>
</div>
</body>

使用Javascript:

<head>
<style type="text/css">
div#slider {
    /* Hide the div */
    display: none;
}
</style>
</head>

<body>
<div class="wrapper">
<div class="header"></div>
<div class="slider"></div>
<div class="maincontent"></div>
</div>

<script type="text/javascript">
var cookie = document.cookie;
if (cookie.indexOf('visited=', 0) == -1) {
    var expiration = new Date();
    expiration.setDate(expiration.getDate()+1);
    document.cookie = 'visited=1;expires=' + expiration + ';path=/';

    var element = document.getElementById('slider');
    element.style.display = 'block';
}
</script>
</body>

顺便说一句,我认为这不是你的整个HTML页面?因为很明显你应该添加一个doctype,tags等。

答案 1 :(得分:2)

当然,您可以使用:

  1. Cookie,可以从js
  2. 访问
  3. HTML5 WebStorage,这也是一个很棒的地方,但仅适用于新的浏览器

答案 2 :(得分:0)

如果您不使用浏览器,我建议您使用HTML5 LocalStorage变量。

http://www.w3schools.com/html/html5_webstorage.asp

但是,如果您应该独立于浏览器(支持IE6等) 我会选择带有访问过的IP的cookie或数据库。