Beispiel für die Implementierung von Unterstreichungseffekten mit CSS und JS

Beispiel für die Implementierung von Unterstreichungseffekten mit CSS und JS

In diesem Artikel werden hauptsächlich zwei Arten dynamischer Unterstreichungseffekte beschrieben. Der erste besteht darin, dass sich beim Schweben die X-Achse von innen nach außen ausdehnt, um den Animationseffekt zu erzielen. Der zweite ist die automatische Anzeige von links nach rechts oder von rechts nach links! !

Der Haupteffekt besteht darin, Pseudoklassen-Tags, Hover und Übergänge zu verwenden, um Animationseffekte zu erzielen.

Die x-Achse dehnt sich von innen nach außen aus

Die Animation der horizontalen Linie wird mithilfe der Bézier-Kurve realisiert. Der spezifische Code lautet wie folgt:

ul {
  Anzeige: Flex;
  Polsterung: 0;
  Rand: 0;
  Listenstiltyp: keiner;
}
ul:hover li:nicht(:hover) a {
  Deckkraft: 0,2;
}
ul li {
  Position: relativ;
  Polsterung: 30px 25px 30px 25px;
  Cursor: Zeiger;
}
ul li::nach {
  Position: absolut;
  Inhalt: "";
  oben: 100 %;
  links: 0;
  Breite: 100 %;
  Höhe: 2px;
  Hintergrund: #3498db;
  transformieren: scaleX(0);
  Übergang: 0,4 s kubisch-bézier (0,165, 0,84, 0,44, 1);
}
ul li:hover::nach, ul li.active::nach {
  transformieren: scaleX(1);
}

Animationseffekt für horizontale Unterstreichung links und rechts

Verwenden Sie hauptsächlich js, um die Position der Maus zu bestimmen, wenn sie sich wegbewegt, und zeigen Sie den Animationseffekt an, indem Sie sie nach links und rechts bewegen

Der JS-Code lautet wie folgt:

document.querySelectorAll('a').forEach(elem => {

  elem.onmouseenter =
  elem.onmouseleave = e => {

    konstante Toleranz = 5;

    Konstante links = 0;
    const right = elem.clientWidth;

    lass x = e.pageX - elem.offsetLeft;

    wenn (x - Toleranz < links) x = links;
    wenn (x + Toleranz > rechts) x = rechts;

    elem.style.setProperty('--x', `${x}px`);

  };

});

CSS verwendet Pseudoklassen-Tags, um Animationseffekte zu implementieren
Der CSS-Code lautet wie folgt:

A {
  Position: relativ;
  Schriftstärke: 600;
  Textdekoration: keine;
  Farbe: rgba(0, 0, 0, 0,4);
  Übergang: Farbe 0,3 s Leichtigkeit;
}
a::nach {
  --Skala: 0;
  Inhalt: '';
  Position: absolut;
  links: 0;
  rechts: 0;
  oben: 100 %;
  Höhe: 3px;
  Hintergrund: #4c81c9;
  -webkit-transform: MaßstabX(var(--scale));
          transformieren: scaleX(var(--scale));
  -webkit-transform-origin: var(--x) 50 %;
          Transform-Ursprung: var(--x) 50 %;
  Übergang: -webkit-transform 0,3 s cubic-bezier(0,535, 0,05, 0,355, 1);
  Übergang: Transformation 0,3 s kubisch-bézier (0,535, 0,05, 0,355, 1);
  Übergang: Transformiere 0,3 s kubisches Bézier(0,535, 0,05, 0,355, 1), -webkit-Transformiere 0,3 s kubisches Bézier(0,535, 0,05, 0,355, 1);
}
ein:schweben {
  Farbe: #4c81c9;
}
ein:hover::nach {
  --Skala: 1;
}

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

<<:  Navicat-Verbindung MySQL Fehlerbeschreibungsanalyse

>>:  Analyse der Vor- und Nachteile von festen, fließenden und flexiblen Webseiten-Layouts

Artikel empfehlen

Lösung für das Problem, dass MySQL Daten sehr langsam löscht und einfügt

Wenn ein Unternehmensentwickler eine Insert-Anwei...

Aufbauprinzip des Nexus-Privatservers und Tutorial-Analyse

eins. Warum einen privaten Nexus-Server erstellen...

Erläuterung zum Lastenausgleich und Reverseproxy von Nginx

Inhaltsverzeichnis Lastenausgleich Klassifizierun...

MySQL Series 11-Protokollierung

Tutorial-Reihe MySQL-Reihe: Grundlegende Konzepte...

Vue-Projekt @change mehrere Parameter, um mehrere Ereignisse zu übergeben

Erstens gibt es nur ein Änderungsereignis. change...

Informationen zum Ausdruck „wenn Komma enthält“ in JavaScript

Manchmal sehen Sie in der if-Anweisung in JavaScr...

Detaillierte Erläuterung gängiger Methoden von JavaScript-Arrays

Inhaltsverzeichnis Gängige Array-Methoden Pop() u...

Vue implementiert Video-Upload-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

JavaScript realisiert den Warteschlangenstrukturprozess

Inhaltsverzeichnis 1. Warteschlangen verstehen 2....

So entfernen Sie in Linux ganz einfach installierte Quellpakete

Schritt 1: Stow installieren In diesem Beispiel v...

Prinzip und Anwendungsbeispiele des URL-Umschreibmechanismus von Nginx

Durch das Umschreiben der URL lässt sich die bevo...

Detaillierte Erläuterung der Pipeline und des Ventils im Tomcat-Pipeline-Modus

Vorwort Wenn in einem relativ komplexen großen Sy...

So verwenden Sie den Linux-Befehl seq

1. Befehlseinführung Mit dem Befehl seq (Sequence...

Das WeChat-Applet implementiert das Scrollen von Text

In diesem Artikelbeispiel wird der spezifische Co...