2

次のコードを訪問ごとに 1 回だけ実行したい。ホームページから別のページに移動してホームページに戻った場合、その効果は再び表示されません。ページを更新すると、その効果が表示されます。コードは次のとおりです。

function stack(){
       $('#image').animate({
            width: 200,
            height: 150,
            top: 0,

        },1500);
}
$(function(){
    stack();
});

これが私がやっていることです: http://jsfiddle.net/kq5M4/

4

3 に答える 3

2

効果が発生したことを示す Cookie を設定するだけでなく、最後のページを追跡する各ページの読み込み時に Cookie を設定します。ホームページがロードされ、最後にアクセスしたページもホームページであった場合は、エフェクトを再度実行します。

( https://github.com/carhartl/jquery-cookie を使用。 )

ホームページ:

var lastPage = $.cookie('last_page');
if (!lastPage || lastPage == document.location.pathname)
    stack();

すべてのページ (ホームページを含む) で:

$.cookie('last_page', document.location.pathname, {expires: 0}); // expires: 0 makes it a session-only cookie

また、リファラーを確認して、サイトを離れて後で戻ってきた場合に再度実行されるようにする必要がある場合もあります.

于 2013-04-12T19:36:23.817 に答える
1

sessionStorage を使用して、最後のページを保存します。

var visited = sessionStorage.getItem('visit');

if (visited == null || document.location.href == sessionStorage.getItem('lastPage')) {
    stack();
    sessionStorage.setItem('visit', 1);
}

sessionStorage.setItem('lastPage', document.location.href);
于 2013-04-12T19:38:51.357 に答える