Ich habe ein Element mit fester Position und automatischer Breite (muss eine automatische Breite haben), die von links einschieben sollte.
Ich habe zwei Zustände dafür definiert: versteckt und sichtbar . Wenn es sichtbar ist, sollte es auf der linken Seite des Fensters positioniert werden, wenn es versteckt ist, sollte es gerade außerhalb der Ansicht sein.
Diese beiden Zustände werden angezeigt, wenn der Übergang statisch ohne Animation ist.
Ich habe auch versucht, CSS3 Transformationen zu verwenden, was funktioniert, aber ich habe Angst vor Cross-Browser-Unterschiede. Wenn Übergänge nicht unterstützt werden, würde der Übergang automatisch auf statische Änderungen zurückfallen, aber wenn ich CSS3-Transformationen verwende, gibt es keinen direkten Fallback. Es muss explizit definiert werden.
Dies ist eine funktionierende Demo des Effekts, indem Sie CSS3-Übergänge und Transformationen verwenden. Wie Sie sehen können, ist die Breite der linken Leiste so breit wie sie sein muss und sie gleitet gerade über die linke Kante hinaus, wenn sie in den versteckten Zustand geht.
Das könnte man irgendwie tun, indem man die Elementbreite manipuliert (während man auch die Breite von max / min benutzt, um die automatische Breite zu unterstützen), aber das Problem dabei ist, dass sich der Inhalt nicht bewegt. Es ist offensichtlich, dass die Elementbreite manipuliert wird. Wir müssen das Element einschließlich seines Inhalts verschieben.
Gibt es eine Möglichkeit, CSS3-Transformationen zu vermeiden und dabei die folgenden Regeln zu erfüllen:
Sie müssen Ihr Element in ein anderes div einfügen:
HTML
%Vor% Und #element
wechselt zwischen left: 0%
und left: -100%
.
Live-Beispiel: Ссылка
Tags und Links css3 css-transitions