ホームページ  >  記事  >  ウェブフロントエンド  >  CSSを使用して簡単なスケルトン画面を実装する

CSSを使用して簡単なスケルトン画面を実装する

Guanhui
Guanhui転載
2020-06-17 17:08:016186ブラウズ

CSSを使用して簡単なスケルトン画面を実装する

まえがき

ネットワークデータをロードする際、ユーザーエクスペリエンスを向上させるために、通常、円を描くローディングアニメーションやスケルトンスクリーンが使用されます。アニメーションのロードと比較して、スケルトン スクリーンはより鮮やかな効果を持ち、実装も非常に簡単です。 CSSを使用して簡単なスケルトン画面を実装できます。 (スケルトン画面とは何ですか?)

推奨学習: CSS ビデオ チュートリアル CSS チュートリアル (画像とテキスト)

アイデア

  • HTML スケルトン

  • CSS プラス スタイル

  • CSSプラスアニメーション

スケルトンの構築から始めます

スケルトンの構造は非常にシンプルで、好きなブロックレベルの要素をいくつかランダムに配置するだけでOKです。

<p class=&#39;screen-root&#39;>
  <ul>
    <li/>
    <li/>
    <li/>
  </ul></p>

ほら、とても簡単です。

CSSカラーリング

よく見るスケルトン画面はこんな感じです

CSSを使用して簡単なスケルトン画面を実装する

説明の便宜上、コントラストを強調するために、最初に

CSSを使用して簡単なスケルトン画面を実装する

のゴースト バージョンを作成します。まず CSS の linear-gradient 属性を使用して、中央に緑がかった赤色のグラデーション画像を描画し、それを li タグの背景として塗りつぶします。

linear-gradient() は次の画像を作成できます。複数色の線形グラデーション。詳細については、ここを参照してください。

li{    background-image: linear-gradient(90deg, #ff0000 25%, #41de6a 37%, #ff0000 63%);    width: 100%;    height: 0.6rem;    list-style: none;
}
CSSを使用して簡単なスケルトン画面を実装する

実際の使用では、グラデーションを変更します。次のような通常の色にマップします。 background-image: Linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%)

Let動きます

残りは真ん中のグリーンを動かすことです

それを動かす方法はありますか?

ここで使用されるのは、背景画像を拡大し、背景の位置のパーセンテージを動的に設定し、背景の位置を変更して、コンテナに対する画像のさまざまなオフセット値を計算することです。アニメーション効果を実現します。

li{    background-image: linear-gradient(90deg, #ff0000 25%, #41de6a 37%, #ff0000 63%);    width: 100%;    height: 0.6rem;    list-style: none;    background-size: 400% 100%;    background-position: 100% 50%;    animation: skeleton-loading 1.4s ease infinite;
}

@keyframes skeleton-loading {
  0% {    background-position: 100% 50%;
  }
  100% {    background-position: 0 50%;
  }
}

ここでは background-position 属性に 2 つの値が設定されています。最初の値はコンテナに対する水平位置のオフセットを表し、2 番目の値はコンテナのオフセットを表しますコンテナに対する垂直位置。

パーセンテージを使用して background-position 値を設定すると、実際の位置決め値 (コンテナの幅 - 画像の幅) * (位置 x%) を計算する式が実行されます。 = (x オフセット値)、つまり、コンテナと画像の間の幅の差に、設定された位置決めパーセント値が乗算されます。結果が実際のオフセット値です。background-size# の幅を設定します。 ## から 400% のいずれかにします。目的は、コンテナーとの幅の差を作成することです。

一部の学生は、

background-size 値を 50% に設定すると、コンテナーとの幅の差が生じる可能性があると尋ねるかもしれません。はい、ただしこの方法では、背景画像がコンテナ全体にタイル状に配置され、緑色の点が 2 倍になることに驚くでしょう。

background-size にさまざまな値を設定してみて、そのパフォーマンスを観察し、なぜこれが起こるのかを考えることができます。

最後に、キーフレーム アニメーションを使用して、x 座標の

background-position 値を 100% から 0%# に設定します。 # #<pre class="brush:php;toolbar:false">@keyframes skeleton-loading {   0% {    background-position: 100% 50%;   }   100% {    background-position: 0 50%;   } }</pre> コンテナの幅が

100px

であると仮定し、背景画像の幅は 400px であるとします。上記の式を使用すると、アニメーションの最初のフレームで、背景画像はコンテナに対して相対的にオフセットされます。実際の値は <pre class="brush:php;toolbar:false">(100px-400px)*100% = -300px</pre> です。最後のフレームの実際のオフセットです。

(100px-400px)*0% = 0

アニメーション プロセスは、実際にはコンテナの幅の 3 倍の線形背景画像です。 . コンテナに対するオフセットは

-300px からです

から 0 に変更する過程です。

その他の関連チュートリアルの推奨事項: 「
PHP プログラミング入門チュートリアル

以上がCSSを使用して簡単なスケルトン画面を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。