CSS3-Übergänge mit Zeitfunktionen erstellen

CSSCSSBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden die Teilnehmer die leistungsstarke Welt der CSS3-Übergänge erkunden und lernen, wie man mit Zeitfunktionen und Übergangseigenschaften glatte und dynamische visuelle Effekte erstellt. Das Lab bietet einen umfassenden, praxisorientierten Ansatz zum Verständnis der Implementierung und Manipulation von CSS-Übergängen, beginnend mit der Einrichtung eines grundlegenden HTML- und CSS-Projekts bis hin zur Experimentation mit fortgeschrittenen Übergangsanimationen.

Die Teilnehmer beginnen mit der Erstellung einer Projektstruktur mit HTML- und CSS-Dateien und lernen dann schrittweise, Hover-Effekte anzuwenden, die Übergangssyntax zu verstehen und verschiedene Zeitfunktionen zu erkunden. Durch praktische Übungen werden die Lernenden Fähigkeiten erwerben, die Transformation von Elementen zu steuern, interaktive Benutzeroberflächen zu erstellen und mit CSS3-Übergangstechniken komplexe visuelle Interaktionen zu webseitigen Designs hinzuzufügen.

HTML-Projekt einrichten und grundlegende Gestaltung

In diesem Schritt werden Sie ein grundlegendes HTML- und CSS-Projekt einrichten, um CSS3-Übergänge zu erkunden. Wir werden eine einfache Projektstruktur erstellen und einige initiale Gestaltung hinzufügen, um uns auf die Übergangseffekte vorzubereiten.

Navigieren Sie zunächst zum Projektverzeichnis:

cd ~/project

Erstellen Sie ein neues Verzeichnis für unser CSS-Übergangsprojekt:

mkdir css-transitions
cd css-transitions

Lassen Sie uns nun die Projektdateien mit der WebIDE erstellen. Erstellen Sie eine index.html-Datei:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>CSS3 Transitions</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    <div class="container">
      <div class="box">Hover Me</div>
    </div>
  </body>
</html>

Als nächstes erstellen Sie eine styles.css-Datei mit einer grundlegenden Gestaltung:

body {
  font-family: Arial, sans-serif;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  margin: 0;
  background-color: #f0f0f0;
}

.container {
  text-align: center;
}

.box {
  width: 200px;
  height: 100px;
  background-color: #3498db;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
  cursor: pointer;
}

Lassen Sie uns überprüfen, ob die Dateien korrekt erstellt wurden:

ls

Beispielausgabe:

index.html  styles.css

Diese Einrichtung liefert eine grundlegende Grundlage für unser CSS-Übergangsprojekt. Wir haben eine einfache HTML-Struktur mit einem Div erstellt, das wir verwenden werden, um verschiedene Übergangseffekte zu demonstrieren. Die CSS liefert eine initiale Gestaltung, um unser Element visuell ansprechend zu gestalten und in der Mitte der Seite zu platzieren.

Implementieren eines grundlegenden Übergangs bei einem Hover-Effekt

In diesem Schritt lernen Sie, wie Sie einen grundlegenden CSS-Übergangseffekt beim Hovern über ein Element erstellen. CSS-Übergänge ermöglichen es Ihnen, Eigenschaftswerte glatt über eine bestimmte Zeitspanne zu ändern.

Öffnen Sie die styles.css-Datei in der WebIDE und ändern Sie die .box-Klasse, um einen Hover-Übergang hinzuzufügen:

.box {
  width: 200px;
  height: 100px;
  background-color: #3498db;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
  cursor: pointer;

  /* Fügen Sie die Übergangseigenschaft hinzu */
  transition: background-color 0.5s ease;
}

.box:hover {
  background-color: #2980b9;
}

Zergliedern wir die Übergangseigenschaften:

  • transition: background-color 0.5s ease;
    • background-color: Die Eigenschaft, die übergeben wird
    • 0.5s: Die Dauer des Übergangs (halb Sekunde)
    • ease: Die Zeitfunktion (glatte Start- und Endphase)

Lassen Sie uns nun einen Skalierungsübergang hinzufügen, um den Effekt interessanter zu gestalten:

.box {
  width: 200px;
  height: 100px;
  background-color: #3498db;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
  cursor: pointer;

  /* Mehrere Übergangseigenschaften */
  transition:
    background-color 0.5s ease,
    transform 0.3s ease;
}

.box:hover {
  background-color: #2980b9;
  transform: scale(1.1);
}

Speichern Sie die Datei und öffnen Sie index.html in einem Webbrowser. Wenn Sie über die Box hovieren, werden Sie sehen:

  1. Die Hintergrundfarbe ändert sich glatt
  2. Die Box wird leicht größer
  3. Der Übergang erfolgt glatt über die angegebene Zeitspanne

Beispiel dessen, was Sie sehen werden:

  • Vor dem Hovern: Blaue Box mit normaler Größe
  • Beim Hovern: Weniger heller blaue, leicht größere Box
  • Der Übergang ist glatt und graduell

Übergangseigenschaften und Syntax erkunden

In diesem Schritt werden Sie tiefer in die CSS-Übergangseigenschaften eintauchen und die vollständige Syntax für das Erstellen von komplexeren und präziseren Übergängen lernen.

Aktualisieren Sie die styles.css-Datei, um verschiedene Übergangseigenschaften zu erkunden:

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  gap: 20px;
}

.box {
  width: 100px;
  height: 100px;
  background-color: #3498db;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  cursor: pointer;

  /* Vollständige Übergangssyntax */
  transition-property: background-color, transform, border-radius;
  transition-duration: 0.5s, 0.3s, 0.4s;
  transition-timing-function: ease-in-out, linear, ease;
  transition-delay: 0s, 0.1s, 0s;
}

.box:hover {
  background-color: #2980b9;
  transform: scale(1.2) rotate(15deg);
  border-radius: 50%;
}

Zergliedern wir die Übergangseigenschaften:

  1. transition-property: Gibt an, welche CSS-Eigenschaften übergeben werden

    • Kann mehrere Eigenschaften durch Kommas getrennt sein
    • all kann verwendet werden, um alle veränderbaren Eigenschaften zu übergeben
  2. transition-duration: Legt die Zeit fest, die der Übergang dauern wird

    • Kann unterschiedliche Dauerzeiten für verschiedene Eigenschaften haben
    • In Sekunden (s) oder Millisekunden (ms) angegeben
  3. transition-timing-function: Steuert die Geschwindigkeitskurve des Übergangs

    • linear: Konstante Geschwindigkeit
    • ease-in: Langsame Startphase, Beschleunigung
    • ease-out: Schnelle Startphase, Verzögerung
    • ease-in-out: Langsame Start- und Endphase
  4. transition-delay: Fügt eine Verzögerung vor dem Start des Übergangs hinzu

    • Nützlich für das Erstellen von sequentiellen oder gestaffelten Effekten

Alternativ können Sie die Kurzfassung transition-Eigenschaft verwenden:

.box {
  transition:
    background-color 0.5s ease-in-out,
    transform 0.3s linear 0.1s,
    border-radius 0.4s ease;
}

Aktualisieren Sie die index.html, um mehrere Boxen zur Demonstration hinzuzufügen:

<body>
  <div class="container">
    <div class="box">Box 1</div>
    <div class="box">Box 2</div>
    <div class="box">Box 3</div>
  </div>
</body>

Wenn Sie über den Boxen hovieren, werden Sie sehen:

  • Verschiedene Übergangseigenschaften
  • Unterschiedliche Zeitangaben und Verzögerungen
  • Mehrere Transformationen, die gleichzeitig stattfinden

Experimentieren mit verschiedenen Zeitfunktionen

In diesem Schritt werden Sie verschiedene CSS-Zeitfunktionen erkunden, die die Geschwindigkeit und Beschleunigung von Übergängen steuern. Zeitfunktionen definieren, wie Zwischenwerte während eines Übergangs berechnet werden.

Aktualisieren Sie die index.html, um mehrere Boxen hinzuzufügen, um verschiedene Zeitfunktionen zu demonstrieren:

<body>
  <div class="container">
    <div class="box linear">Linear</div>
    <div class="box ease">Ease</div>
    <div class="box ease-in">Ease In</div>
    <div class="box ease-out">Ease Out</div>
    <div class="box ease-in-out">Ease In-Out</div>
  </div>
</body>

Ändern Sie die styles.css, um verschiedene Zeitfunktionen zu zeigen:

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  gap: 20px;
  flex-wrap: wrap;
}

.box {
  width: 100px;
  height: 100px;
  background-color: #3498db;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

/* Lineare Zeitfunktion */
.linear {
  transition: transform 2s linear;
}
.linear:hover {
  transform: translateX(200px);
}

/* Ease (Standard) Zeitfunktion */
.ease {
  transition: transform 2s ease;
}
.ease:hover {
  transform: translateX(200px);
}

/* Ease-In Zeitfunktion */
.ease-in {
  transition: transform 2s ease-in;
}
.ease-in:hover {
  transform: translateX(200px);
}

/* Ease-Out Zeitfunktion */
.ease-out {
  transition: transform 2s ease-out;
}
.ease-out:hover {
  transform: translateX(200px);
}

/* Ease-In-Out Zeitfunktion */
.ease-in-out {
  transition: transform 2s ease-in-out;
}
.ease-in-out:hover {
  transform: translateX(200px);
}

Eigenschaften der Zeitfunktion:

  • linear: Konstante Geschwindigkeit von Anfang bis Ende
  • ease: Langsame Startphase, schnelle Mitte, langsame Endphase (Standard)
  • ease-in: Langsame Startphase, Beschleunigung zum Ende
  • ease-out: Schnelle Startphase, Verzögerung zum Ende
  • ease-in-out: Langsame Start- und Endphase, schneller in der Mitte

Sie können auch benutzerdefinierte cubic-bezier-Funktionen verwenden, um eine genauere Steuerung zu erzielen:

.custom-timing {
  transition: transform 2s cubic-bezier(0.25, 0.1, 0.25, 1);
}

Wenn Sie über jede Box hovieren, werden Sie verschiedene Bewegungsmuster aufgrund ihrer Zeitfunktionen beobachten.

Erstellen eines fortgeschrittenen Übergangsanimations

In diesem Schritt werden Sie eine komplexere Übergangsanimation erstellen, die mehrere Eigenschaften kombiniert und fortgeschrittene CSS-Übergangstechniken demonstriert.

Aktualisieren Sie die index.html, um ein interaktiveres Element hinzuzufügen:

<body>
  <div class="container">
    <div class="card">
      <div class="card-front">Hover Me</div>
      <div class="card-back">Advanced Transition!</div>
    </div>
  </div>
</body>

Ändern Sie die styles.css, um eine umklappbare Karte mit fortgeschrittenen Übergängen zu erstellen:

body {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: #f0f0f0;
  font-family: Arial, sans-serif;
}

.card {
  width: 300px;
  height: 200px;
  position: relative;
  perspective: 1000px;
}

.card-front,
.card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
  transition:
    transform 0.8s cubic-bezier(0.25, 0.1, 0.25, 1),
    background-color 0.5s ease,
    box-shadow 0.5s ease;
}

.card-front {
  background-color: #3498db;
  color: white;
  transform: rotateY(0deg);
}

.card-back {
  background-color: #2ecc71;
  color: white;
  transform: rotateY(180deg);
}

.card:hover.card-front {
  transform: rotateY(180deg);
  background-color: #2980b9;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

.card:hover.card-back {
  transform: rotateY(0deg);
  background-color: #27ae60;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

Wichtige fortgeschrittene Übergangstechniken:

  1. 3D-Rotation mit rotateY
  2. Perspektive für 3D-Effekt
  3. backface-visibility, um die Rückseite der Elemente zu verstecken
  4. Mehrere Übergangseigenschaften
  5. Benutzerdefinierte cubic-bezier-Zeitfunktion
  6. Hover-Zustands-Transformationen
  7. Farb- und Schattenübergänge

Die Animation demonstriert:

  • Glatte 3D-Kartenumklappung
  • Farbänderung beim Hovern
  • Schatteneffekt
  • Komplexe Zeitsteuerung und Übergänge mehrerer Eigenschaften

Wenn Sie über die Karte hovieren:

  • Die Vorderseite dreht sich und ändert die Farbe
  • Die Rückseite wird sichtbar
  • Glatter Übergang mehrerer Eigenschaften

Zusammenfassung

In diesem Lab lernen die Teilnehmer, wie dynamische CSS3-Übergänge erstellt werden, indem sie ein umfassendes Webprojekt aufbauen, das sich auf interaktive Designtechniken konzentriert. Das Lab beginnt mit der Einrichtung einer strukturierten HTML- und CSS-Umgebung, indem ein grundlegendes Projekt erstellt wird, das einen zentrierten Div-Element enthält, das mit grundlegenden Eigenschaften wie Hintergrundfarbe, Bordradius und Flexbox-Layout gestaltet ist.

Die Lernreise geht weiter mit der Implementierung von Hover-Effekten, der Erkundung von Übergangseigenschaften und -Syntax und der Experimentation mit verschiedenen Zeitfunktionen, um glatte, ansprechende Animationen zu erstellen. Indem sie systematisch ein CSS-Übergänge-Projekt entwickeln, gewinnen die Teilnehmer praktische Fähigkeiten bei der Manipulation von Elementeigenschaften, dem Verständnis von Übergangmechaniken und der Gestaltung visuell ansprechender Web-Interaktionen, die die Benutzererfahrung durch subtile, responsive Designtechniken verbessern.