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