「同じページに2回目以降は表示させない」
というのをやりたかったのですが、
つまったので、苦労の後を記録しておきます。
##jQueryの場合
jQueryのクッキー使うときは、以下のように
- jQuery
- jquery.cookie.js
- cookieを発火させる記述
の順番に記述します。
<script src="js/jquery-3.4.1.min.js" type="text/javascript"></script>
<script src="js/jquery.cookie.js" type="text/javascript"></script>
<script>
//クッキーがあれば、#js-loaderを非表示にする
if ($.cookie("access")) {
$("#js-loader").css('display','none');
}
//クッキーを取得させる
$.cookie("access","topPage"); //2つ目は任意の文字を入れます
</script>
こちら参考にしました
-> jQueryプラグイン「jquery.cookie.js」でcookieを簡単に扱う
これでも機能したのですが、
javascriptの読み込みが遅い場合、
#js-loaderが最初にちょこっと表示されてしまいます!!!
これだとクッキーで条件分岐する意味がない。。。。
なので、最初っからキレイに非表示にしたい場合、
PHPを使いましょう!
##PHPの場合
以下のように記述しました。
まず、最初のページに表示させる条件分岐を書き、
その中に、クッキーがあるかどうかで条件分岐させます。
<?php if(is_front_page()):
if(!(isset($_COOKIE["topPage"]))): //クッキーが保存されていない時 []内は任意の文字
setcookie("topPage", 1); //クッキーをいれる 2つ目は任意の値を入れます ?>
<div id="js-loader">
ローディングアニメーションの要素
</div>
<?php endif; //クッキーの分 ?>
<?php endif; //is_front_pageの分 ?>
これでスッキリ解決しました!!
こちら参考にしました!
-> PHPでCookieを使う方法【初心者向け】
-> クッキーの読み込み