スケルトンスクリーンを実装する

1. このページの目的

スケルトンスクリーンを実装する。

2. デモ

Ctrl + Shift + R キーで、ブラウザをリロードする。

3. コード

HTML

<img id="img1" src="./get_image.php" width="500"/>
<div id="skelton" class="loading"></div>

CSS

.loading {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  background: #ccc;
}

@keyframes skeleton-animation {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

.loading::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.2),
    transparent
  );
  animation: skeleton-animation 1.0s linear infinite;
}

#skelton {
  width: 500px;
  height: 355px;
}

JavaScript

document.querySelector('#img1').classList.add('hidden');

window.addEventListener('load', (event) => {
  document.querySelectorAll('.loading').forEach((e) => {
    e.classList.add('hidden');
  });
  document.querySelector('#img1').classList.remove('hidden');
});

4. CodePenで試した

See the Pen Untitled by laboradian (@laboradian) on CodePen.

5. 参考