0

私はjqueryが初めてで、次のコードをまとめて、設定されたスクロールダウン量の後にDIVを表示させました。上にスクロールすると、DIV は消えます。オプションで、DIV が表示されたら、それを閉じるためのリンクがあります。これはすべて意図したとおりに機能しますが、スクリプトを 1 回だけ実行したいという点は別として。今、上にスクロールすると、黄色いボックスが再び表示されます。ボックスが閉じたままになるようにするにはどうすればよいですか? 別のオプションとして、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 link

4

3 に答える 3

1

クラスを削除して、ボックスが で囲まれたままになるようにすることができますremoveClass()。または$(".box").remove()アニメーションの直後。この選択は Cookie で保存できますが、クライアントが Cookie を削除すると失われます。

于 2013-09-20T12:02:09.260 に答える
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 に答える
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 に答える