サイトを制作中にfadeThisというライブラリを使用し
要素のスライドやフェードインできるようにしているのですが、
ページローディングアニメーション後に画面内にすでに収まっている要素が
ローディング表示時点でスライドインが実行され
ローディング終了時にはすでに画面に出てきてる状態になってしまいます。
これをローディング画面が終わってページが表示されてからスライドインが実行されるようにするには
どのようにしたらいいか悩んでいます。どなたかアドバイスいただけると嬉しいです。
テスト用に参考ページをアップしました。
http://o-sam.com/loadercheck/loader.html
ページの内容は以下になります。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <title>フェードインのアニメーションをページローディング後に再生されるようにしたい</title> <style> #loader-bg { text-align:center; display: none; color:#ffffff; height: 100%; width: 100%; position: fixed; top: 0px; left: 0px; background: #333333; z-index: 10000; overflow:hidden; } #loader { font-size:10px; width:100%; height:100%; text-align:center; display: none; color: #ffffff; z-index: 20000; margin:auto; } #loader img{ text-align:center; position: fixed; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } </style> </head> <body> <!---LOADER--> <div id="loader-bg"> <div id="loader"> <img src="img/three-dots.svg" width="60" height="60" alt="Now Loading..." /> </div> </div> <!---LOADER END--> <div id="wrap"> <!---LOADER-WRAPPER--> <div class="container-fluid mt-5"> <div class="row mt-5"> <div class="slide-top mb-5 mt-5"><img class="img-fluid w-100" src="img/loadertestimg.jpg" alt=""> <div class=" pt-1 pb-1"> <h3><b>最初の画面内の要素はスライドインの予定がローダーが表示されている間にスライドインされてしまっている</b></h3> </div> </div> <div class="slide-top mb-5"><img class="img-fluid w-100" src="img/loadertestimg.jpg" alt=""> <div class=" pt-1 pb-1"> <h3><b>これらすべてを<br>ページローディング後に再生されるようにしたい</b></h3> </div> </div> <div class="slide-top mb-5"><img class="img-fluid w-100" src="img/loadertestimg.jpg" alt=""> <div class=" pt-1 pb-1"> <h3><b>これらすべてを<br>ページローディング後に再生されるようにしたい</b></h3> </div> </div> <div class="slide-top mb-5"><img class="img-fluid w-100" src="img/loadertestimg.jpg" alt=""> <div class=" pt-1 pb-1"> <h3><b>これらすべてを<br>ページローディング後に再生されるようにしたい</b></h3> </div> </div> <div class="slide-top mb-5"><img class="img-fluid w-100" src="img/loadertestimg.jpg" alt=""> <div class=" pt-1 pb-1"> <h3><b>これらすべてを<br>ページローディング後に再生されるようにしたい</b></h3> </div> </div> <div class="slide-top mb-5"><img class="img-fluid w-100" src="img/loadertestimg.jpg" alt=""> <div class=" pt-1 pb-1"> <h3><b>これらすべてを<br>ページローディング後に再生されるようにしたい</b></h3> </div> </div> </div> </div> <!---JAVASCRIPT LOAD--> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script> $(function() { var h = $(window).height(); $('#wrap').css('display','none'); $('#loader-bg ,#loader').height(h).css('display','block'); }); $(window).load(function () { //全ての読み込みが完了したら実行 $('#loader-bg').delay(900).fadeOut(800); $('#loader').delay(600).fadeOut(300); $('#wrap').css('display', 'block'); }); //10秒たったら強制的にロード画面を非表示 $(function(){ setTimeout('stopload()',10000); }); function stopload(){ $('#wrap').css('display','block'); $('#loader-bg').delay(900).fadeOut(800); $('#loader').delay(600).fadeOut(300); } </script> <script type="text/javascript" src="js/jquery.fadethis.min.js"></script> <script type="text/javascript"> $(window).fadeThis(); </script> </div> <!---LOADINGWRAPER--> </body> </html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/10 21:46
2019/10/12 17:35
2019/10/12 17:36
2019/10/12 18:35
2019/10/12 18:38
2019/10/14 10:00
2019/10/15 12:40
2019/10/15 12:44
2019/10/15 13:51