こんにちは、私の Web サイトにアクセスしたときに Web サイトのナビゲーションがフェードインし、サイトの他のページにアクセスしたときに表示されたまま (つまり、再びフェードインしない) にしたいと思います。
これを達成する最善の方法は、同じドメインからアクセスした場合にフェードイン効果を無視するよう jQuery に指示することでしょうか? もしそうなら、誰かが私がこれをどのように書くか教えてもらえますか?
どうもありがとう、ギャビン
Cookie を使用せずにこれを行う簡単な方法は、document.referrer プロパティを使用することです。
if ( document.referrer == null || document.referrer.indexOf(window.location.hostname) < 0 ) {
// Your code here
}
基本的に、ユーザーが以前に表示していたページが何もない (新しいブラウザー ウィンドウを開いた) か、現在のページと同じドメインにないかを確認するだけです。
このソリューションが機能するために、ユーザーが Cookie を有効にすることを保証することはできません。実装する前に、まず Cookie がオンになっているかどうかを確認するチェックを追加する必要があります。このような方法を使用して、Cookie がオンになっているかどうかを確認できます。
var cookieName = 'yourcookiename';
$(function() {
checkCookie();
});
function checkCookie() {
if (document.cookie.length > 0 && document.cookie.indexOf(cookieName + '=') != -1) {
// do nothing, cookie already sent
} else {
// handle jQuery animation
// set the cookie to show user has already visited
document.cookie = cookieName + "=1";
}
}
これがユーザーの最初のアクセスかどうかを判断する唯一の方法は、サイトから設定された Cookie の存在です。
ユーザーが Cookie をオフにしているか、Cookie を削除している可能性があるため、これは明らかに信頼できません。
Cookie はサーバー側のコードで取得され、(たとえば) JavaScript/JQuery からアクセス可能な HTML 隠し変数に書き出されます。
サーバー コードの詳細は、サーバー言語によって異なります。
クッキーを使用できます。参照: http://plugins.jquery.com/project/Cookie