Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Cookie滑下div并在重新加载时记住_Javascript_Jquery_Cookies - Fatal编程技术网

Javascript Cookie滑下div并在重新加载时记住

Javascript Cookie滑下div并在重新加载时记住,javascript,jquery,cookies,Javascript,Jquery,Cookies,我正在制作一个通知栏,它能记住什么时候它已经关闭,如果它以前从未关闭过,它会向下滑动 然而,如果你不关闭通知,如果你浏览我的网站页面,它每次都会向下滑动。这可能会激怒观众 如何更改代码,使其在网站的第一个视图上向下滑动,然后在浏览其他页面时再也不会滑动?我希望它在第一个视图中向下滑动,然后如果您单击一个链接,它就会打开。我试着对最后一部分做了一些修改,但没有弄明白 var clearCookie=function(){ var result=$.removeCookie('JSFiddleCo

我正在制作一个通知栏,它能记住什么时候它已经关闭,如果它以前从未关闭过,它会向下滑动

然而,如果你不关闭通知,如果你浏览我的网站页面,它每次都会向下滑动。这可能会激怒观众

如何更改代码,使其在网站的第一个视图上向下滑动,然后在浏览其他页面时再也不会滑动?我希望它在第一个视图中向下滑动,然后如果您单击一个链接,它就会打开。我试着对最后一部分做了一些修改,但没有弄明白

var clearCookie=function(){
var result=$.removeCookie('JSFiddleCookieNotification');
如果(结果){
警报('已删除Cookie,请重新加载');
}否则{
警报(“错误:未删除Cookie”);
}
}
var closeCookie=函数(){
$(“#注意”).slideUp(400,函数(){
$(this.remove();
});
$('#已修复')。设置动画({
排名:0
}, 400);
$.cookie('JSFiddleCookieNotification','Notified','{
有效期:7
});
}
//系好钮扣
$(“#clearCookie”)。点击(“点击”,clearCookie);
$(.exit”)。在(“单击”,关闭cookie);
//如果需要,现在显示cookie
if($.cookie('JSFiddleCookieNotification')==null){
$('注意')。向下滑动(1000);
var timer=setInterval(函数(){
$('navmenu,navmenu mobile,#fixed').css({
顶部:$('注意').outerHeight()
});
if($('#notice').outerHeight()==$('#fixed').css('top')){
清除间隔(计时器);
}
}, 10);
}
更改为不向下滑动:

var isUserSawNotify = $.cookie('userSawNotify') != null;
  if (!isUserSawNotify) {
    $.cookie('userSawNotify', 'Notified', {
        expires: 7
    });
  }  

// Now display the cookie if we need to
if ($.cookie('JSFiddleCookieNotification') == null) {
    $('#notice').slideDown(isUserSawNotify ? 0 : 1000);

 var timer = setInterval(function () {
     $('navmenu, navmenu-mobile, #fixed').css({
         top: $('#notice').outerHeight()
     });
     if ($('#notice').outerHeight() == $('#fixed').css('top')) {
         clearInterval(timer);
     }

 }, 10);
}

我只是解释如何做我评论的最后一部分。(
加载页面时,设置用户已看到通知的cookie。下次用户将获取页面时,请检查cookie是否存在,如果存在,请不要滑动切换

$(文档).ready(函数(){
//这是新的部分
var isUserSawNotify=$.cookie('userSawNotify')!=null;
如果(!isUserSawNotify){
$.cookie('userSawNotify','Notified','{
有效期:7
});
}
if($.cookie('JSFiddleCookieNotification')==null){
//编辑现有代码中的特定行
//如果用户已经看到通知,只需将0传递给持续时间,这样它将显示通知而不进行转换
$('#notice').slideDown(isUserSawNotify?0:1000);
}
});

这对我很有用。当我关闭
通知
部分,转到其他地方并返回您的站点时,除非我删除cookie,否则我看不到
通知。.我更改了帖子。我想要的是,如果你没有关闭通知,并且你单击了一个链接,它就不应该再滑下来,它应该是打开的。因此,当页面加载时,设置一个cookie,让用户已经看到通知。下次用户获取页面时,请检查cookie是否存在,如果存在,请不要滑动切换..我该怎么做?我不太擅长烹饪谢谢!这很有效。但是,当userSawNotify保存为Cookie时,该条会闪烁,并且#fixed(内容的下推)也会闪烁。我在帖子中输入了更改。Ir闪烁,因为它发生在客户端。因此,页面已准备就绪(且用户可见),只有在此时您才能显示该栏。如果要避免闪烁,请在服务器上进行。(或者隐藏页面直到<代码>$(窗口)。加载<代码>,这是不推荐的)啊!我使用的是Shopify,所以我想我无法访问服务器上的cookies?如果它会闪烁,最好让它向下滑动,这样就没有意义了。我不熟悉Shopify,但如果你可以访问服务器,你就可以访问
cookies