0

我是 jquery 的新手,并将以下代码放在一起,以使 DIV 在设置的向下滚动量后出现。如果向上滚动,DIV 就会消失。或者,一旦 DIV 出现,就会有一个链接来关闭它。这一切都按预期工作,除了我只希望脚本运行一次。目前,如果我向上滚动,黄色框会再次出现。如何确保盒子保持关闭状态?作为另一种选择,我可以集成 cookie 或 localStorage 吗?

非常感谢!拉斯。

Javascript:

$(function () {
    var target = $(".box");
    if ($(window).scrollTop() > 30) {
        target.hide();
    }
    $(window).scroll(function () {
        var pos = $(window).scrollTop();
        if (pos > 30) {
            target.stop(true, true).fadeIn('slow');
        } else {
            target.stop(true, true).fadeOut('slow');
        }
    });
    $('a.close').click(function () {
        $($(this).attr('href')).slideUp();
        return false;
    });
}); 

这是我的代码的 jsfiddle 链接:jsfiddle 链接

4

3 回答 3

1

您可以删除该类以确保该框保持包含在removeClass(). 或者直接$(".box").remove()在你的动画之后。您可以使用 cookie 存储此选择,但如果客户端删除了他的 cookie,它就会丢失。

于 2013-09-20T12:02:09.260 回答
0

您可以从窗口中删除事件滚动,并为 localStorage 执行以下操作:

$(function () {
    var target = $(".box");
    if ($(window).scrollTop() > 30) {
        target.hide();
    }
    $(window).scroll(function () {
        var pos = $(window).scrollTop();
        if (pos > 30) {
            target.stop(true, true).fadeIn('slow');
        } else {
            target.stop(true, true).fadeOut('slow');
        }
        if(localStorage['noNotification'] == 'true'){
            $(window).off('scroll');
        }
    });
    $('a.close').click(function () {
        $($(this).attr('href')).slideUp();
        $(window).off('scroll');
        localStorage['noNotification'] = 'true';
        return false;
    });

});

于 2013-09-20T12:03:33.797 回答
0

试试这个http://jsfiddle.net/AbwXu/4/

var notdisplayed=true;
$(function(){ 
    var target = $(".box");
    if($(window).scrollTop() > 30){
      target.hide();
    }
    $(window).scroll(function(){
        var pos = $(window).scrollTop();
        if(pos > 30  && notdisplayed){
            target.stop(true, true).fadeIn('slow');

        } else {
            target.stop(true, true).fadeOut('slow');
            notdisplayed=false;
        }
    });
    $('a.close').click(function() {
        $($(this).attr('href')).slideUp();
        notdisplayed=false;
        return false;
    });
于 2013-09-20T11:59:19.530 回答