画面遷移に時間がかかる時 クルクル読み込み表示を gifファイルで代用 ruby

今回はインターネット上で画面が遷移する際以下のような読み込み中表示がよくある

                                 f:id:mi---tomo:20191119213033p:plain

spin.js が有名だが これの代用になる方法としてgifファイルを再生する方法を

紹介したいと思う

htmlとcssjQueryの記述のみで表示が可能だ

実際に実装した遷移画面は以下のリンク

https://gyazo.com/e1463a4af04661cc9a5c9853bb66f4db

遷移の最中は赤い車が走るgifファイルが再生されるようになっている

 

実装の方法はとてもシンプルで

①htmlに今回の遷移gifは

<div class='loadingWrap'>
  <img src='/car.gif'>*該当車の台数が多いときは1分程度かかることがあります
</div>

と記述してあるのみだ

loadingWrapクラス内にイメージタグ利用してgifファイルの保存してある場所を指定しているだけだ今回のgifファイルはpublic直下に保存してある

 

②続いてcss

.loadingWrap{
  width100%;
  height100%;
  margin-top:60px;
  background#fff;
  positionfixed;
  text-align:center;
  top0;
  left0;
}
.loadingWrap img{
  positionabsolute;
  top50%;
  left20%;
  height:11%;
  width:80%;
  margin-top-100px;
  margin-left-150px;
}

が記述してあるだけだ

内容の補足としてloadingWrapクラスは遷移時に全体を白く隠すためのもので

その中のimg はgifファイルの表示位置サイズを指定している

③最後にjQueryだが方法はいくつかあると思うためあくまで参考ということで

以下のような記述をした

$(document).on('turbolinks:load'function() {
  $(".loadingWrap").hide();
  $(document).ready(function(){
    $('.btn--block').click(function(){
      $(".loadingWrap").fadeIn();
    })
  });
 $(window).load(function(){
  $(".loadingWrap").fadeOut();
 });
});

ボタンが押されると発火するように記述した

以上遷移画面を表示できるようになるはずだ!

 

参考になれば幸いです

※内容はjQueryを使えるようにする設定などは省いてます