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 エンコードを使用する必要がありますか?

推薦する

Prometheusコンテナのデプロイメントのための実用的なソリューション

環境ホスト名IPアドレス仕えるプロメテウス192.168.237.137プロメテウス、グラファナノー...

プロファイルを使用して遅い SQL を分析する MySQL の詳細な説明 (グループ左結合はサブクエリよりも効率的です)

プロファイルを使用して遅いSQLを分析するMySQL の SQL パフォーマンス アナライザーの主な...

Vueメソッドに基づくシンプルなタイマーの実装

Vueのシンプルなタイマーを参考にしてください。具体的な内容は以下のとおりです原理: setInte...

MySQL データベース アーキテクチャの詳細

目次1. MySQL アーキテクチャ2. ネットワーク接続層3. データベースサービス層4. 接続プ...

WeChat アプレット wxss で外部 CSS ファイルとアイコンフォントを参照する方法

原因外部ファイルをミニプログラムにインポートする方法は次のとおりです: @import "...

Linux でハイパースレッディング技術を動的に有効/無効にする方法の詳細な説明

序文Intel のハイパースレッディング テクノロジーにより、1 つの物理コア上で 2 つのスレッド...

Nginx+Keepalived でデュアルマシン マスターとバックアップを実装する方法

序文まず、高性能サーバーの高可用性またはホットスタンバイソリューションである Keepalived ...

MySQL 8.0 でのチェック制約の実装

みなさんこんにちは。私は技術の話ばかりして髪を切らない先生のトニーです。今回はMySQL 8.0で追...

js 配列エントリ() 反復メソッドを取得する

目次1.entires() メソッドの詳細な構文2.entires() メソッドの一般的な使用法と注...

ウィンドウの中央にブロック要素の位置を設定する方法

ウィンドウの中央にブロック要素の位置を設定する方法ブロック要素をウィンドウの中央に配置する上記の方法...

MySQLデータベースを定期的に自動バックアップする方法

データは貴重なものであることは誰もが知っています。データをバックアップしなければ、データをそのまま放...

Docker初心者が初めてよく使うコマンドを試してみる練習記録

Docker を正式に使用する前に、まず Docker でよく使用されるコマンドに慣れておきましょう...

Vue のグローバル ウォーターマーク実装例

目次1. 透かしのJsファイルを作成する2. 導入操作2.1 App.vueや他のページでの参照2....

Linx awk入門チュートリアルの詳細な説明

Awk はテキスト ファイルを処理するためのアプリケーションであり、ほぼすべての Linux システ...

MySQLのマスタースレーブ構成を使用して、読み取りと書き込みの分離を実現し、データベースの負荷を軽減します。

大規模な Web サイトでは、多数の同時アクセスを処理するために、Web サイト上の分散負荷分散以上...