0

ユーザーがホームページにアクセスしたときに、divを1回だけフェードインしようとしています。たとえば、サイトにアクセスすると「サイト ホーム タイトル」がフェード インし、「概要」、「連絡先」ページなどに移動しますが、ホーム ページをもう一度クリックしても、「サイト ホーム タイトル」はフェードしません。の。

だから私はちょうど持っているdivで:

$('#home-title').fadeIn(500);

したがって、私の問題は、ホームページにアクセスするたびに常にそれがフェードすることです...明らかに、それはコードがそれを行うように指示しているためです。しかし、最初にホームページにアクセスしたときに一度だけ発生するようにするには、何を追加すればよいでしょうか?

[ごめん!以下、より詳細な説明]

私はこれを持っています:

$(document).ready(function() { 
    $('.faded').hide();
});


$(window).load(function() {     
    $(".faded").each(function(i) {
        $(this).delay(i * 500).fadeIn();  
    });
}

したがって、.faded はホームページの div にのみ添付されます。それが他のページのいずれかにあり、クリックしてホームページに戻った場合、jQueryがそれを認識できるかどうか疑問に思っていました-要素がすでにフェードインしているため、再度行う必要はありません。しかし、ユーザーがブラウザーを閉じるか、サイトを完全に離れて戻ってきた場合、.faded div が再びフェードインする可能性がありますか?

4

2 に答える 2

1

古いブラウザーが問題になる場合は、Cookie が必要です。ここには優れた jQuery プラグインがあります。

それ以外の場合は、処理が少し簡単なので、localStorage を使用します。

var elem = $('#home-title');

if (elem.length) {                                  //you're on the first page
    if (!sessionStorage.getItem('HasVisitedFirst')) {  //check if we have been here
        elem.fadeIn(500);                            //if not, fade in  
        sessionStorage.setItem('HasVisitedFirst',true);//and set a value to remember
    }
}

フィドル

于 2012-08-05T01:30:57.037 に答える
0

使用しているバックエンドに応じて、セッションまたは他の Cookie が設定されているかどうかを確認し、存在しない場合は fadeIn することができます。

jQuery を使用しているため、独自の Cookie を設定/取得する簡単な方法があります。例を示すために簡単なjsfiddleをまとめました。

編集:言及する必要がありますが、このソリューションにはjquery-cookieプラグインが必要です。最初の読み込み後にフェードインなしで永続的に表示する場合は、css 表示プロパティをブロックに設定するだけです (最初に css を使用して非表示にしたと仮定します)。

$('#home-title').css('display', 'block');

ここに更新された fiddleがあります。

于 2012-08-05T01:31:07.303 に答える