実現したいこと
現在WordPressを利用してウェブサイトの構築を行っております。
ローディング画面を実装したのですが、現状はページが更新されるたびに処理が発生しております。
そこで、外部からのアクセス時~~(初回アクセス時)~~のみローディング画面を発生させたいです。
古い記事ではあるのですが、下記記事を参考に
jQueryで「jquery.cookie.js」を使ってページの初回アクセスのみ処理を変える方法
を読み、jquery.cookie.jsを用いて、記事のサンプルをそのまま利用しても機能しない状態です。
また、私自身javascriptの知識がないに等しいため、紹介記事等を参考に組んでおります。
どなたか初回アクセス時のみ以下の処理を行うorローディング画面を発生させる方法をご教授いただけないでしょうか。
よろしくお願いいます。
該当のソースコード
<script type="text/javascript"> var time=new Date().getTime(); $(function() { var h = $(window).height(); $('#loader-bg ,#loader').height(h).css('display','block'); }); //全ての読み込みが完了したら実行 $(window).on('load',function () { var now = new Date().getTime(); if (now-time<=3000) { setTimeout('stopload()',5000-(now-time)); return; } else { stopload(); } }); //5秒たったら強制的にロード画面を非表示 $(function(){ setTimeout('stopload()',5000); }); function stopload(){ $('#loader-bg').delay(900).fadeOut(800); $('#loader').delay(600).fadeOut(300); } </script>
現在は上記コードでローディング画面の発生・終了までは処理できております。
よろしくお願いいたします。
---追記---
Jqueryのバージョンや、Cookie.jsを使用した際のコードを書いたほうがいいとのご指摘をいただいたので、
追記させていただきます。
【ブラウザ】
GOOGLE Chrome
(バージョン: 67.0.3396.99(Official Build) (64 ビット))
【jQuery】
jquery-3.3.1.min.js
参考サンプルを記述したもの
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/jquery.cookie.js"></script> <script type="text/javascript"> $(function(){ if($.cookie("access")){ $('#first').css({display:'none'}); } $(window).load(function(){ $.cookie("access",$('body').addClass('access')); }) }); </script>
以上よろしくお願いいたします。
---追記---
外部からのアクセス時(初回アクセス時)のみ
と書いてありますが、私の説明不足でした。
主にページ内の内部リンクを対象と考えております。
トップページに直接アクセスした際にはローディング画面を表示。
サブページ等からトップページにアクセスした際にはローディング画面を非表示
と考えております。
私の記載内容がまとまっておらず、ご迷惑おかけしましたことおお詫び申し上げます。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/09 06:21
2018/07/09 07:28