Javascript 永久隐藏div直到下次访问

Javascript 永久隐藏div直到下次访问,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个类为“fullscreen”的div 因为您提到了“即使导航离开页面并返回到页面”的要求,所以您需要一种存储状态的方法 有几种选择: 会议 饼干 本地存储(在旧浏览器上可能无法工作) 你挑吧:) 在这种情况下,我可能会使用会话存储,因为您提到了“即使导航离开页面并返回到页面”的要求,您需要一种存储状态的方法 有几种选择: 会议 饼干 本地存储(在旧浏览器上可能无法工作) 你挑吧:) 在这种情况下,我可能会使用会话存储最终更新: 我在下面概述了如何使用Cookie、localSto

我有一个类为“
fullscreen
”的div


因为您提到了“即使导航离开页面并返回到页面”的要求,所以您需要一种存储状态的方法

有几种选择:

  • 会议
  • 饼干
  • 本地存储(在旧浏览器上可能无法工作)
你挑吧:)


在这种情况下,我可能会使用会话存储,因为您提到了“即使导航离开页面并返回到页面”的要求,您需要一种存储状态的方法

有几种选择:

  • 会议
  • 饼干
  • 本地存储(在旧浏览器上可能无法工作)
你挑吧:)


在这种情况下,我可能会使用会话存储

最终更新: 我在下面概述了如何使用Cookie、localStorage或服务器端会话存储值。以下是我将如何使用您发布的代码实现这些解决方案:

 //Smooth Scroll
    $('a').click(function(){
        $('html, body').animate({
            scrollTop: $( $(this).attr('href') ).offset().top
        }, 1500);
        /* We have animated, lets set the variable to never do this again */
        if(supports_storage()) localStorage['nofullscreen'] = true;
        return false;
    });
上面,我们将localStorage变量(我将其命名为“nofullscreen”,可以随意替换为对您有意义的变量)设置为true,因此我们知道用户已经看到了我们的全屏。现在,当页面加载时,我们要检查变量,并相应地执行以下操作:

 $( document ).ready(function() {
     if(localStorage['nofullscreen'] == 'true') $('.fullscreen').hide();
 });
如果存储变量存在且为“true”,则在页面加载时应隐藏类为“fullscreen”的div


您需要在用户计算机上存储cookie,以了解他们过去访问过。您可以使用基本Javascript来实现这一点,如下所示:

document.cookie="nofullscreen=true";
上面的一行将在本地存储中创建一个cookie,滚动到#页面后运行此操作

上面的函数可以在页面加载时运行,如果用户以前在这里并且您应该直接转到#页面,则返回True;如果是新用户并且您应该显示全屏div,则返回false

更新:其他人建议使用本地存储,这也是一个好主意。下面是一个小例子。

检查兼容性:

function supports_storage(){
    try{
        return 'localStorage' in window && window['localStorage'] !== null;
    } catch (e) {
        return false;
    }
}
写入存储器:

if(supports_storage()) localStorage['sitename.nofullscreen'] = true;
检查存储:

 if(localStorage['sitename.nofullscreen'] == "true"){
      //go right to #page
 }
更新#2:PHP会话存储 您已经在评论中解释了您也在使用PHP。我觉得上面的任何一个解决方案都可以很好地工作,但是为了完整起见,我将在这里添加一些PHP代码

首先,您需要启动会话:

 <?php session_start() ?>

您现在可以使用PHP编写会话,如下所示:

 <?php $_SESSION['nofullscreen']='true'; ?>

并检查会话变量是否稍后设置为:

 <?php if($_SESSION['nofullscreen'] == 'true') { //print css rules to hide #fullscreen here? } ?>

如果需要清除会话变量,可以使用unset:

 <?php unset($_SESSION['nofullscreen']) ?>


希望这有帮助

最终更新: 我在下面概述了如何使用Cookie、localStorage或服务器端会话存储值。以下是我将如何使用您发布的代码实现这些解决方案:

 //Smooth Scroll
    $('a').click(function(){
        $('html, body').animate({
            scrollTop: $( $(this).attr('href') ).offset().top
        }, 1500);
        /* We have animated, lets set the variable to never do this again */
        if(supports_storage()) localStorage['nofullscreen'] = true;
        return false;
    });
上面,我们将localStorage变量(我将其命名为“nofullscreen”,可以随意替换为对您有意义的变量)设置为true,因此我们知道用户已经看到了我们的全屏。现在,当页面加载时,我们要检查变量,并相应地执行以下操作:

 $( document ).ready(function() {
     if(localStorage['nofullscreen'] == 'true') $('.fullscreen').hide();
 });
如果存储变量存在且为“true”,则在页面加载时应隐藏类为“fullscreen”的div


您需要在用户计算机上存储cookie,以了解他们过去访问过。您可以使用基本Javascript来实现这一点,如下所示:

document.cookie="nofullscreen=true";
上面的一行将在本地存储中创建一个cookie,滚动到#页面后运行此操作

上面的函数可以在页面加载时运行,如果用户以前在这里并且您应该直接转到#页面,则返回True;如果是新用户并且您应该显示全屏div,则返回false

更新:其他人建议使用本地存储,这也是一个好主意。下面是一个小例子。

检查兼容性:

function supports_storage(){
    try{
        return 'localStorage' in window && window['localStorage'] !== null;
    } catch (e) {
        return false;
    }
}
写入存储器:

if(supports_storage()) localStorage['sitename.nofullscreen'] = true;
检查存储:

 if(localStorage['sitename.nofullscreen'] == "true"){
      //go right to #page
 }
更新#2:PHP会话存储 您已经在评论中解释了您也在使用PHP。我觉得上面的任何一个解决方案都可以很好地工作,但是为了完整起见,我将在这里添加一些PHP代码

首先,您需要启动会话:

 <?php session_start() ?>

您现在可以使用PHP编写会话,如下所示:

 <?php $_SESSION['nofullscreen']='true'; ?>

并检查会话变量是否稍后设置为:

 <?php if($_SESSION['nofullscreen'] == 'true') { //print css rules to hide #fullscreen here? } ?>

如果需要清除会话变量,可以使用unset:

 <?php unset($_SESSION['nofullscreen']) ?>



希望这有帮助

你应该使用cookies。看看sessionstorage是什么将网站定义为“下次再次访问”。。。不同的一天?不同的浏览器选项卡/会话?使用会话范围的cookie/sessionStorage@dabadaba当前位置你可能是对的,但我更愿意寻求澄清而不是猜测。。。。似乎我是唯一一个,因为其他人似乎都想跳到与你相同的结论,你应该使用cookies。看看SessionsTorage是什么定义网站为“下次再次访问”。。。不同的一天?不同的浏览器选项卡/会话?使用会话范围的cookie/sessionStorage@dabadaba当前位置你可能是对的,但我更愿意寻求澄清而不是猜测。。。。似乎我是唯一一个,因为其他人似乎都想和你得出相同的结论!我认为这是最好的方法!我认为这是最好的方法会话呢?会话是在服务器端处理的,Javascript不支持会话?您是否正在使用诸如PHP/Python/NodeJS等后端?如果是这样的话,我很乐意为您指出正确的方向,如果不是localStorage或简单的cookie,那么它会更干净。我也使用PHP,您会推荐什么?Loai,我仍然建议使用localStorage,但我已经编辑了我的答案,向您展示了如何在PHP中使用$\u会话变量。快乐编码!但是,一旦滚动到#页面并仅解决问题,我将如何隐藏div?另外,nofullscreen是什么意思,你是说。FullScreen会话呢?会话是在服务器端处理的,Ja