Mithilfe von CSS3-Übergängen können Sie für jede Eigenschaft einen Glättungs- und Glättungseffekt erzielen.
Kann ich es so einrichten, dass es nur einen Glättungseffekt hat? Ich möchte, dass die Lösung nur in CSS vorliegt und JavaScript nach Möglichkeit vermieden wird.
Logikfluss:
- Benutzer klickt auf Element
- Der Übergang dauert 0,5 Sekunden, um die Hintergrundfarbe von Weiß nach Schwarz zu ändern
- Benutzer lässt die linke Maustaste los
- Der Übergang dauert 0,5 Sekunden, um die Hintergrundfarbe von Schwarz nach Weiß zu ändern
Was ich möchte:
- Benutzer klickt auf Element
- Der Übergang dauert 0s, um sich zu ändern
- Benutzer lässt die Maustaste los
- Der Übergang dauert 0,5 Sekunden, um sich zu ändern ...
Es gibt keine Übergangszeit, aber eine Übergangszeit.
opacity
, dass ein Element "ausgeblendet" wird, sobald eine CSS-Klasseb
vorhanden ist, aber die Änderungen abrupt angezeigt werden, sobald diese CSS-Klasse weg ist (ohne Übergang). Also habe ich definiert.a { transition: ... 0s...; } .b { opacity: 0.5; } .b.a { transition: ... 2s ...; }
. Wenn nun ein Element, an das immer eine CSS-Klassea
angehängt ist, ebenfalls eine Klasse erhältb
, wird die Deckkraft auf 0,5 ausgeblendet, während, wenn sieb
plötzlich nicht mehr vorhanden ist, kein Übergang zurück erfolgt.