Lösen Sie schnell das Problem der weißen Lücke (Flash-Bildschirm), wenn CSS @keyframes verwendet, um Bilder für den ersten Zyklus zu laden

Lösen Sie schnell das Problem der weißen Lücke (Flash-Bildschirm), wenn CSS @keyframes verwendet, um Bilder für den ersten Zyklus zu laden

Problemerklärung:

Wenn Sie die CSS-Eigenschaft „animations“ verwenden, wird beim ersten Laden der Schleife eine weiße Lücke angezeigt, die ein wenig so aussieht, als würde die Seite aktualisiert. Bei jeder nachfolgenden Schleife tritt dieses Problem nicht mehr auf.

Problempräsentation

//html
 <div Klasse="Container">
        <div Klasse="Erste"> </div>
  </div>
//weniger
.container {
  Breite: 100vw;
  Höhe: 100%;
}
.container .erste {
  Breite: 100vw;
  Höhe: 100vh;
  Animation: bgmove 10s unendlich;
}
@keyframes bgmove {
  0% {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1.jpg") keine Wiederholung, Mitte, Mitte;
    Hintergrundgröße: Abdeckung;
    Deckkraft: 1;
  }
  15 % {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1_1.jpg") keine Wiederholung, Mitte, Mitte;
    Deckkraft: 1;
    Hintergrundgröße: Abdeckung;
  }
  30% {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-2_1.jpg") keine Wiederholung, Mitte, Mitte;
    Deckkraft: 1;
    Hintergrundgröße: Abdeckung;
  }
  45 % {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-4_1.jpg") keine Wiederholung, Mitte, Mitte;
    Deckkraft: 1;
    Hintergrundgröße: Abdeckung;
  }
  60 % {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-5_1.jpg") keine Wiederholung, Mitte, Mitte;
    Deckkraft: 1;
    Hintergrundgröße: Abdeckung;
  }
  80 % {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1_1.jpg") keine Wiederholung, Mitte, Mitte;
    Deckkraft: 1;
    Hintergrundgröße: Abdeckung;
  }
  100 % {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1.jpg") keine Wiederholung, Mitte, Mitte;
    Hintergrundgröße: Abdeckung;
    Deckkraft: 1;
  }
}

Lösung

//weniger
.container {
  Breite: 100vw;
  Höhe: 100%;
}
.container .erste {
  Breite: 100vw;
  Höhe: 100vh;
  Hintergrund: 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");
  Animation: bgmove 10s unendlich;
}
@keyframes bgmove {
  0% {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1.jpg") keine Wiederholung, Mitte, Mitte;
    Hintergrundgröße: Abdeckung;
    Deckkraft: 1;
  }
  15 % {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1_1.jpg") keine Wiederholung, Mitte, Mitte;
    Deckkraft: 1;
    Hintergrundgröße: Abdeckung;
  }
  30% {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-2_1.jpg") keine Wiederholung, Mitte, Mitte;
    Deckkraft: 1;
    Hintergrundgröße: Abdeckung;
  }
  45 % {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-4_1.jpg") keine Wiederholung, Mitte, Mitte;
    Deckkraft: 1;
    Hintergrundgröße: Abdeckung;
  }
  60 % {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-5_1.jpg") keine Wiederholung, Mitte, Mitte;
    Deckkraft: 1;
    Hintergrundgröße: Abdeckung;
  }
  80 % {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1_1.jpg") keine Wiederholung, Mitte, Mitte;
    Deckkraft: 1;
    Hintergrundgröße: Abdeckung;
  }
  100 % {
    Hintergrund: URL("https://sqimg.qq.com/qq_product_operations/im/pcqq/9.0/firstscreen_img/BG-1.jpg") keine Wiederholung, Mitte, Mitte;
    Hintergrundgröße: Abdeckung;
    Deckkraft: 1;
  }
}

Endergebnis

Problemanalyse

Beim Laden von Bildern gibt es im Allgemeinen zwei Situationen: das Vorladen von Bildern und das verzögerte Laden von Bildern. Hier sprechen wir über das Problem des Vorladens von Bildern. Wenn sich zu viele Bilder auf einer Seite befinden, wird der Server stark belastet. Das gleichzeitige Laden von Bildern führt zu Diskontinuitäten. Daher sollten alle Bilder beim ersten Laden geladen werden. Auf diese Weise werden diese Bilder bei späterer Verwendung als lokale Ressourcen zwischengespeichert, und die Ladegeschwindigkeit ist viel schneller und es tritt kein weißer Fehler auf.

Dies ist das Ende dieses Artikels darüber, wie man das Problem der weißen Lücke (Blinkbildschirm) schnell lösen kann, das auftritt, wenn CSS @keyframes zum ersten Mal zum Laden von Bildern verwendet. Weitere relevante CSS-Keyframes zum Laden von Bildinhalten finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

<<:  Beispielcode zur Trennung von Front-End und Back-End mit FastApi+Vue+LayUI

>>:  Sollte ich beim Erstellen einer Website die Kodierung UTF-8 oder GB2312 verwenden?

Artikel empfehlen

DOCTYPE Dokumenttypdeklaration (unbedingt lesenswert für Webseiten-Liebhaber)

DOCTYPE-DEKLARATION: Oben auf jeder Seite, die Sie...

Eine kurze Diskussion über Shallow Copy und Deep Copy in JavaScript

Inhaltsverzeichnis 1. Direkte Zuordnung 2. Oberfl...

Detaillierte Erklärung des Vue-Plugins

Zusammenfassen Dieser Artikel endet hier. Ich hof...

Beispielcode zur Implementierung eines gepunkteten Rahmen-Scrolleffekts mit CSS

Wir sehen oft einen coolen Effekt, wenn die Maus ...

Beispiel für den schnellen Aufbau einer LEMP-Umgebung mit Docker

LEMP (Linux + Nginx + MySQL + PHP) ist heutzutage...

Implementierung von MySQL-indexbasierten Stresstests

1. Datenbankdaten simulieren 1-1 Datenbank- und T...

Detaillierte Erklärung der Set-Datenstruktur von JavaScript

Inhaltsverzeichnis 1. Was ist Set 2. Konstruktor ...

Ein Artikel zum Erlernen von CSS3-Bildrändern

Mit der CSS3-Eigenschaft „border-image“ können Si...