Der erste Cutter in China github.com/chokcoco Hier ist zunächst ein Bild. Wie können wir mit reinem CSS den folgenden Effekt erzielen? Machen Sie eine kurze Pause, bevor Sie weiterlesen. Versuchen Sie, über den obigen Effekt nachzudenken oder ihn selbst auszuprobieren, und prüfen Sie, ob Sie den obigen Effekt ohne die Hilfe von JS geschickt erzielen können. OK, weiter. Dieser Effekt ist ein ähnliches kleines Problem, auf das ich während des Geschäftsentwicklungsprozesses gestoßen bin. Selbst wenn man mich bitten würde, Javascript zu verwenden, wäre meine erste Reaktion, dass es sehr mühsam wäre. Daher habe ich mich gefragt, ob es möglich ist, diesen Effekt nur mit CSS zu erzielen. Anforderungen definieren Definieren wir eine einfache Regel mit den folgenden Anforderungen: Nehmen wir an, dass die HTML-Struktur wie folgt ist: <ul> <li>Erstaunliches CSS</li> <li>Navigationsleiste</li> <li>Dem Cursor folgt eine kleine Unterstreichung</li> <li>REINES CSS</li> <li>Nav-Unterstreichung</li> </ul>
Realisierungsanforderungen Als ich diesen Effekt zum ersten Mal sah, dachte ich, dass die folgende Animation nicht allein mit CSS zu erreichen sei. Wer dies nur mit CSS erreichen möchte, dem bleibt nur ein anderer Weg und die Anwendung einiger ausgefeilter Methoden. OK, verwenden wir einige Tricks und CSS, um diesen Effekt Schritt für Schritt zu erzielen. Analysieren Sie die Schwierigkeiten: Die Breite ist nicht festgelegt Die erste Schwierigkeit besteht darin, dass die Breite von Da die Breite jedes einzelnen li { Rahmen unten: 2pxsolid#000; } Jetzt könnte es also so aussehen (li sind miteinander verbunden und die Lücken zwischen li werden durch Natürlich gibt es zunächst keine Unterstriche, daher müssen wir sie möglicherweise ausblenden. li { Rahmen unten: 0pxsolid#000; } Beginnen Sie noch einmal mit Pseudoelementen Dies scheint nicht zu funktionieren, da nach dem Ausblenden beim Schweben über li::vor { Inhalt: ""; Position: absolut; oben: 0; links: 0; Breite: 100 %; Höhe: 100%; Rahmen unten: 2pxsolid#000; } Betrachten wir den ersten Schritt der Animation. Beim Hovern soll sich die Unterlinie von einer Seite aus bewegen und ausdehnen. Daher verwenden wir die absolute Positionierung, um die Breite li::vor { Inhalt: ""; Position: absolut; oben: 0; links: 0; Breite: 0; Höhe: 100%; Rahmen unten: 2pxsolid#000; } li:hover::vor { Breite: 100 %; } Es wurden folgende Ergebnisse erzielt: OK, ich habe das Gefühl, dem Erfolg einen Schritt näher zu sein. Nun müssen wir uns mit dem schwierigsten Problem befassen: So können Sie erreichen, dass die Linie der Bewegung des Cursors folgt, sodass sich die Unterstreichung von links nach rechts bewegt, wenn Sie vom linken Schauen wir uns die aktuelle Wirkung genauer an: Beim Wechsel vom ersten li::vor { Inhalt: ""; Position: absolut; oben: 0; links: 100 %; Breite: 0; Höhe: 100%; Rahmen unten: 2pxsolid#000; } li:hover::vor { links: 0; Breite: 100 %; } Sehen Sie die Wirkung: Wenn Sie die beiden Bilder genau vergleichen, werden Sie feststellen, dass der zweite Effekt tatsächlich darin besteht, dass Sesamkörner aufgenommen und Wassermelonen verloren werden. Die Richtung des ersten Daher benötigen wir dringend eine Methode, mit der der Bewegungsmodus der Unterstreichung des nächsten Das ist richtig, hier können wir den Für das aktuell schwebende li::vor { Inhalt: ""; Position: absolut; oben: 0; links: 100 %; Breite: 0; Höhe: 100%; Rahmen unten: 2pxsolid#000; Übergang: 0,2salllinear; } li:hover::vor { Breite: 100 %; links: 0; } li:hover~li::vor { links: 0; } An diesem Punkt ist der gewünschte Effekt erreicht! Blumen streuen. schau mal rein: Der Effekt ist gut, aber etwas steif. Den oben genannten Effekt können wir erzielen , indem wir die Easing-Funktion entsprechend ändern und eine Animationsverzögerung hinzufügen. Natürlich ist dies nur das Sahnehäubchen. Die vollständige DEMO finden Sie hier: CodePen --Demo endlich Der größte Fehler dieser Methode besteht darin, dass beim Eingeben des ersten Li die Linie nur von rechts nach links verlaufen kann. Abgesehen davon kann der folgende Effekt sehr gut erzielt werden. Ich habe schon lange keine Updates mehr gemacht. In letzter Zeit bin ich besessen davon, Blockchain-bezogene Technologien wie Ethereum-Programmierung, das Schreiben von Smart Contracts usw. zu lernen. In Zukunft werde ich mich noch mehr auf mein eigenes Gebiet konzentrieren und mehr Front-End-Artikel schreiben. Der Charme von CSS ist immer noch unwiderstehlich. Weitere wunderbare technische CSS-Artikel sind in meinem Github – iCSS – gesammelt. Sie werden ständig aktualisiert. Klicken Sie einfach auf einen Stern, um sich anzumelden und zu sammeln. Zusammenfassen Oben sehen Sie den unglaublichen CSS-Navigationsleisten-Unterstreichungseffekt, den ich Ihnen vorgestellt habe. Ich hoffe, er wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! |
<<: Die Verwendung von Textbereichen in HTML und häufige Probleme und Fallanalyse
>>: Kreatives „Über uns“-Webseitendesign
Inhaltsverzeichnis Hintergrund Bereitstellen / In...
Als ich kürzlich an einem Übungsprojekt arbeitete...
Ein Muss für Vorstellungsgespräche. Sie werden es...
MySQL-Batch-Einfügeproblem Da bei der Entwicklung...
Vorwort Hier sind die Schritte zur Installation u...
JS implementiert ein Hover-Dropdown-Menü. Dies is...
In diesem Artikelbeispiel wird der spezifische Co...
1. Befehlseinführung Der Dateibefehl wird verwend...
Während der Konfiguration des Jenkins+Tomcat-Serv...
Inhaltsverzeichnis Anwendungsszenario Einfach aus...
1. Ändern Sie die Docker-Konfigurationsdatei und ...
Bei der Installation von MySQL 8.0 auf einem Win1...
transformieren und übersetzen Transformieren bezi...
Inhaltsverzeichnis vorgenannt VARCHAR-Typ VARCHAR...
Inhaltsverzeichnis webpack5 Offizieller Start Bau...