CSS が最初のサイクルで画像を読み込むために @keyframes を使用するときに発生するホワイトギャップの問題 (フラッシュ画面) をすばやく解決します。

CSS が最初のサイクルで画像を読み込むために @keyframes を使用するときに発生するホワイトギャップの問題 (フラッシュ画面) をすばやく解決します。

問題の説明:

CSS アニメーション プロパティを使用すると、ループが最初に読み込まれたときに白いギャップが表示され、ページが更新されているように見えます。この問題は、後続のループでは発生しません。

問題の提示

//html
 <div class="コンテナ">
        <div class="first"> </div>
  </div>
//少ない
。容器 {
  幅:100vw;
  高さ: 100%;
}
.コンテナ .first {
  幅:100vw;
  高さ:100vh;
  アニメーション: bgmove 10秒 無限;
}
@keyframes bgmove {
  0% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1.jpg") 繰り返しなし 中央 中央;
    背景サイズ: カバー;
    不透明度: 1;
  }
  15% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1_1.jpg") 繰り返しなし 中央 中央;
    不透明度: 1;
    背景サイズ: カバー;
  }
  30% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-2_1.jpg") 繰り返しなし 中央 中央;
    不透明度: 1;
    背景サイズ: カバー;
  }
  45% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-4_1.jpg") 繰り返しなし 中央 中央;
    不透明度: 1;
    背景サイズ: カバー;
  }
  60% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-5_1.jpg") 繰り返しなし 中央 中央;
    不透明度: 1;
    背景サイズ: カバー;
  }
  80% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1_1.jpg") 繰り返しなし 中央 中央;
    不透明度: 1;
    背景サイズ: カバー;
  }
  100% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1.jpg") 繰り返しなし 中央 中央;
    背景サイズ: カバー;
    不透明度: 1;
  }
}

解決

//少ない
。容器 {
  幅:100vw;
  高さ: 100%;
}
.コンテナ .first {
  幅:100vw;
  高さ:100vh;
  背景:url("https://sqimg.qq.com/qq\_product\_operations/im/pcqq/9.0/firstscreen\_img/BG-1.jpg"),
             url("https://sqimg.qq.com/qq\_product\_operations/im/pcqq/9.0/firstscreen\_img/BG-1\_1.jpg"),
             url("https://sqimg.qq.com/qq\_product\_operations/im/pcqq/9.0/firstscreen\_img/BG-2\_1.jpg"),
             url("https://sqimg.qq.com/qq\_product\_operations/im/pcqq/9.0/firstscreen\_img/BG-4\_1.jpg"),
             url("https://sqimg.qq.com/qq\_product\_operations/im/pcqq/9.0/firstscreen\_img/BG-5\_1.jpg"),
             url("https://sqimg.qq.com/qq\_product\_operations/im/pcqq/9.0/firstscreen\_img/BG-1\_1.jpg");
  アニメーション: bgmove 10秒 無限;
}
@keyframes bgmove {
  0% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1.jpg") 繰り返しなし 中央 中央;
    背景サイズ: カバー;
    不透明度: 1;
  }
  15% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1_1.jpg") 繰り返しなし 中央 中央;
    不透明度: 1;
    背景サイズ: カバー;
  }
  30% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-2_1.jpg") 繰り返しなし 中央 中央;
    不透明度: 1;
    背景サイズ: カバー;
  }
  45% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-4_1.jpg") 繰り返しなし 中央 中央;
    不透明度: 1;
    背景サイズ: カバー;
  }
  60% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-5_1.jpg") 繰り返しなし 中央 中央;
    不透明度: 1;
    背景サイズ: カバー;
  }
  80% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1_1.jpg") 繰り返しなし 中央 中央;
    不透明度: 1;
    背景サイズ: カバー;
  }
  100% {
    背景: url("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1.jpg") 繰り返しなし 中央 中央;
    背景サイズ: カバー;
    不透明度: 1;
  }
}

最終結果

問題分析

一般的に、画像の読み込みには、画像のプリロードと画像の遅延読み込みの 2 つの状況があります。ここでは、画像のプリロードの問題について説明しています。ページに画像が多すぎると、サーバーに大きな負荷がかかります。一度に画像を読み込むと、中断が発生します。そのため、すべての画像を最初に読み込む必要があります。このようにして、これらの画像が後で使用されるときに、ローカル リソースとしてキャッシュされ、読み込み速度が大幅に高速化され、ホワイト フォールトが発生しなくなります。

CSS が @keyframes を使用して画像を初めて読み込むときに発生するホワイトギャップ問題 (画面がフラッシュする) をすばやく解決する方法についての記事はこれで終わりです。CSS キーフレームを使用して画像を読み込む関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  FastApi+Vue+LayUIを使用してフロントエンドとバックエンドを分離するサンプルコード

>>:  ウェブサイトを構築するときは、UTF-8 または GB2312 エンコードを使用する必要がありますか?

推薦する

MySQL 8.0.13 のインストールと設定のグラフィックチュートリアル

Msyqlデータベースのインストール、参考までに具体的な内容は次のとおりです。 ①ブラウザでhttp...

mycat を使用して MySQL データベースの読み取りと書き込みの分離を実装する例

MyCATとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベースク...

MySQL で 2 つのセットの交差/差/和を取得する方法

MySQL の一般的なシナリオ: 2 つのデータ セットの交差と差を取得するステップ1. 2つのコレ...

Photoshop を使って Web ワイヤーフレームを作成する方法

この投稿では、通知、画像とビデオ、フォーム フィールド、タイトル、段落、箇条書きリスト、ナビゲーショ...

TypeScriptジェネリックの使用

目次1. 使いやすい2. 関数内でジェネリックを使用する3. クラス内でジェネリックを使用する4. ...

MySQL のインデックスとビューの使用方法と違いの詳細な説明

序文この記事では主に、MySQL のインデックスとビューの使用方法と違いを紹介し、参考と学習のために...

Windows での MySQL 5.7.18 のインストールと設定のチュートリアル

この記事では、WindowsでのMySQL 5.7.18のインストールと設定のチュートリアルを参考ま...

トップナビゲーションバーメニューを作成するためのHTML+CSS

ナビゲーションバーの作成:技術要件: CS HTMLタグ達成目的:ナビゲーションバーメニューの作成コ...

Dockerでコンテナを作成するときのディレクトリ権限

昨日プロジェクトを書いていた時に、MySQL の派生版である Percona を使う必要があったので...

操作例 MySQL ショートリンク

MySQL ショートリンクの設定方法1. mysql 接続番号ステートメントコマンドを確認します。 ...

MySQL 5.7.25 圧縮版のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 5.7.25圧縮版のインストールと設定方法を参考までに紹介します。具体的な...

MySql バージョンの問題に対する完璧なソリューション sql_mode=only_full_group_by

1. sql_modeを確認する @@sql_mode を選択照会された値は次のとおりです。 ON...

背景属性の8つの属性値の詳細解説(面接の質問)

CSSの背景プロパティの値背景色背景画像背景繰り返し背景位置背景添付複合プロパティ: 背景: ba...

MySQL の count 関数の正しい使い方の詳細な説明

1. 説明MySQLでは、テーブル内の行の総数を取得する必要がある場合、通常は次の文を使用します。 ...

CentOS のクローン作成、Linux 仮想マシンの共有の完全な手順

序文Linux が完全にセットアップされると、クローン機能を使用して短時間で複数の Linux を作...