CSS

【コピペOK】iframe部分の表示が遅いので、ローディングアニメーションを表示させてみた

ページ内にiframeを配置した場合、少し読み込み時間が発生するので、気になる方はいらっしゃるのではないでしょうか。
読み込んでいる以上は、やはり回避できないということになります。
そこで、ローディングアニメーションを表示させ、UX(ユーザーエクスペリエンスを向上させることにしました。
HTML、CSS、Jqueryで対応可能です。ローディングアニメーションの部分は、GIFアニ画像でもなく、フォントアイコンでもなく、使いまわしができるCSSを使用しました。

ローディングアニメーション表示させる仕組みについて

  • HTML、CSS、Jqueryを使用
  • ページが読み込まれたら、初期表示はローディングアニメーションを表示
  • ローディングアニメーションの配置は、絶対配置で
  • ローディングアニメーションのパーツはCSSにて
  • iframeが表示されたら、ローディングアニメーションを非表示に

ローディングアニメーションのパーツはCSSをコピペ

めんどくさいので、以下のサイトからコピペが可能
Single Element CSS Spinners
Single Element CSS Spinners

  • BGの部分:サンプルページの背景色を設定できます
  • FGの部分:アニメーションの色を設定できます
    デフォルトのアニメーションは白いので、サイト上部のFGより色を選択したほうがよいです
  • < View Source >をクリックするとCSSが表示されますので、コピーし、ページで使用しているCSSに貼り付け

サンプルHTML

Loading...

サンプルCSS

.loader,
.loader:before,
.loader:after {
  border-radius: 50%;
}
.loader {
  color: #ffffff;
  font-size: 11px;
  text-indent: -99999em;
  margin: 55px auto;
  position: relative;
  width: 10em;
  height: 10em;
  box-shadow: inset 0 0 0 1em;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
}
.loader:before,
.loader:after {
  position: absolute;
  content: '';
}
.loader:before {
  width: 5.2em;
  height: 10.2em;
  background: #0dc5c1;
  border-radius: 10.2em 0 0 10.2em;
  top: -0.1em;
  left: -0.1em;
  -webkit-transform-origin: 5.1em 5.1em;
  transform-origin: 5.1em 5.1em;
  -webkit-animation: load2 2s infinite ease 1.5s;
  animation: load2 2s infinite ease 1.5s;
}
.loader:after {
  width: 5.2em;
  height: 10.2em;
  background: #0dc5c1;
  border-radius: 0 10.2em 10.2em 0;
  top: -0.1em;
  left: 4.9em;
  -webkit-transform-origin: 0.1em 5.1em;
  transform-origin: 0.1em 5.1em;
  -webkit-animation: load2 2s infinite ease;
  animation: load2 2s infinite ease;
}
@-webkit-keyframes load2 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes load2 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
Single Element CSS Spinners