motion-offset
. Diese und alle anderen zugehörigen Motion- * Eigenschaften werden in der Spezifikation in Offset- * umbenannt. Wir ändern die Namen hier im Almanach. Wenn Sie es jetzt verwenden möchten, verwenden Sie wahrscheinlich am besten beide Syntaxen.
Die motion-offset
Eigenschaft in CSS sagt: Wie weit motion-path
sind Sie? Dies ist die animierbare Eigenschaft, die Bewegungspfaden zugeordnet ist.
.thing-that-moves ( /* "Old" syntax. Available in Blink browsers as of ~October 2015 */ motion-path: path('M 5 5 m -4, 0 a 4,4 0 1,0 8,0 a 4,4 0 1,0 -8,0'); motion-offset: 0%; /* Currently spec'd syntax. Should be in stable Chrome as of ~December 2016 */ offset-path: path('M 5 5 m -4, 0 a 4,4 0 1,0 8,0 a 4,4 0 1,0 -8,0'); offset-distance: 0%; animation: move 3s linear infinite; ) /* Animate the element along the path from 0% to 100% */ @keyframes move ( 100% ( motion-offset: 100%; /* Old */ offset-distance: 100%; /* New */ ) )
Im obigen Beispiel haben wir den Anfangswert motion-offset
auf gesetzt 0%
, obwohl es erwähnenswert ist, dass Null der Standardwert ist, auch wenn er nicht explizit definiert ist (wir hätten das weglassen können).
Variablen
Die offset-distance
Eigenschaft akzeptiert die folgenden Werte:
length
percentage
In beiden Fällen gibt der Wert die Länge des Abstands vom Startpunkt des Pfads (Standard ist 0px
oder 0%
) zum Endpunkt des Pfads an.
Beispiel
In diesem Beispiel haben wir zwei Kreise, in denen sich ein kleiner Kreis entlang des Pfades eines größeren Kreises bewegt.
Hier ist die SVG-Datei, mit der wir die Formen zeichnen:
Jetzt können wir die .marker
Klasse in unserem CSS so einstellen, dass sie den Klassenkoordinaten folgt .track
:
/* The motion-offset is zero by default */ .marker ( offset-path: path('M 5 5 m -4, 0 a 4,4 0 1,0 8,0 a 4,4 0 1,0 -8,0'); animation: move 3s linear infinite; ) @keyframes move ( /* Move the .marker from it's default value of 0% to 100% of the path's length */ 100% ( offset-distance: 100%; ) )
Sehen Sie sich das einfache Beispiel für die Animation entlang eines Pfades von Geoff Graham (@geoffgraham) auf CodePen an.
In ähnlicher Weise können wir den offset-distance
Wert bei 50% stoppen und die Animation würde auf halber Strecke abfallen:
Sehen Sie sich das einfache Beispiel für die Animation entlang eines Pfades von Geoff Graham (@geoffgraham) auf CodePen an.
Um die Geschwindigkeit der Animation zu steuern, können Sie den offset-distance
Wert mit 300% multiplizieren, um die Geschwindigkeit zu erhöhen. Wenn wir jedoch angegeben haben, wie lange die Animation mit einem Wert ausgeführt werden soll, der größer ist als die Zeit, die das Element benötigt, um den Pfad zu durchlaufen, wird die Bewegung angehalten, bis die Animation ihr Intervall abgeschlossen hat, bevor sie wiederholt wird:
Sehen Sie sich das einfache Beispiel für die Animation entlang eines Pfades von Geoff Graham (@geoffgraham) auf CodePen an.
Browser-Unterstützung
Die offset-distance
Eigenschaft wird zum Zeitpunkt des Schreibens noch als experimentelles Feature betrachtet, und es gibt keine Dokumentation zur Browserunterstützung. Es gibt jedoch eine Dokumentation zum motion-path
Support, die wir vorerst als Basis verwenden können.
Diese Browser-Unterstützungsdaten stammen von Caniuse, das detaillierter ist. Eine Zahl gibt an, dass der Browser die Funktion ab dieser Version unterstützt.
Desktop
Chrom | Feuerfuchs | IE | Kante | Safari |
---|---|---|---|---|
46 | 72 | Nein | 79 | Nein |
Handy / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | Nein |
zusätzliche Information
- Bewegungspfadmodul Level 1 Spec
- Beispiele für CodePen
- WebKit Ticket # 139128
- Mozilla Ticket # 1186329
- Microsoft Edge-Funktionsanforderung