JavaScriptでローディング画面表示開始時間を操作したい
https://www.webcreatorbox.com/tech/loading-animation
↑このページを参考に、ページ遷移時にロードが完了したらローディング画面をhiddenにすることはできました。ただローディング時間が短い時はフラッシュのようになるため、最初はhiddenにしておいて、クリックから2秒以上経過してもなおローディング中の場合はローディング画面を表示し、完了後に再度hiddenにしたいです。
つまり
pseudo
1クリック(タイマー開始) 2↓ 3Djangoのviewにてプログラムを実行開始 4↓ 52秒経過→(template作成+ロード完了)なにもしない 6↓ 7(まだ実行中)loading pageを表示 8↓ 9(ロード完了)loading pageを非表示にしtemplateを表示する
を想定しています。
###懸念点
Djangoを使用しており、定期的にviewでごちゃごちゃやっているためその時はページ遷移に時間がかかってしまいます。<script>をhtmlのheaderに持ってこようと考えましたがページが構成されてからのロードは速いためこれでは解決できないと考えてます。知見をお聞かせください。よろしくお願いいたします。
現在
上の途中まではできたので下に示しておきます。
HTML
1<!--ローディング画面--> 2<div id="loading"> 3 <svg ....> 4 ....... 5 </svg> 6</div>
CSS
1#loading { 2 visibility: hidden; 3} 4.still_loading { 5 visibility: visible; 6} 7.loaded { 8 visibility: hidden; 9} 10
JS
1<!--HTMLファイルの一番下--> 2<script> 3 window.onload = function() { 4 document.getElementById('loading').style = "visibility: hidden"; 5 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/16 13:14 編集