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

Implementierungsprinzip und Nutzungsanalyse des Apache Bench-Stresstest-Tools

1: Durchsatz (Anfragen pro Sekunde) Eine quantita...

JQuery implementiert das Ausblenden und Anzeigen von Animationseffekten

In diesem Artikel wird der spezifische Code von J...

Verschachtelte Verwendungsoperation für MySQL-Aggregatfunktionen

Zweck: Verschachtelte Verwendung von MySQL-Aggreg...

Lösung für das zu langsame Herunterladen des Docker-Images

Der Download des Docker-Images hängt oder ist zu ...

Detaillierte Erklärung gängiger Docker-Befehle

1. Hilfe-Befehl 1. Aktuelle Docker-Version anzeig...

Detaillierte Erklärung zum Anzeigen der MySQL-Speichernutzung

Vorwort Dieser Artikel stellt hauptsächlich die r...

Ein einfaches Beispiel für die MySQL-Suche nach Daten im Umkreis von N Kilometern

Gemäß dem Koeffizienten von Pi und dem Radius der...

So kaufen und installieren Sie Alibaba Cloud-Server

1. Kaufen Sie einen Server Im Beispiel handelt es...

Mehrere Möglichkeiten, Axios in Vue zu kapseln

Inhaltsverzeichnis Basisversion Schritt 1: Axios ...

So verwenden Sie Axios, um Netzwerkanforderungen in React Native zu stellen

In der Front-End-Entwicklung gibt es viele Möglic...

Ursachenanalyse und Lösung des E/A-Fehlers beim Löschen einer MySQL-Tabelle

Problemphänomen Ich habe kürzlich Sysbench verwen...