motion-offset
. Detta, och alla andra relaterade rörelse- * egenskaper, döps om i offset- * i specifikationen. Vi ändrar namnen här i almanaken. Om du vill använda den just nu är det troligen bäst att använda båda syntaxerna.
Den motion-offset
egendom i CSS säger: hur långt längs motion-path
är du? Detta är den animerbara egenskapen som är associerad med rörelsevägar.
.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 */ ) )
I exemplet ovan har vi ställt in det initiala motion-offset
värdet på 0%
, även om det är värt att notera att noll är standardvärdet, även om det inte uttryckligen definierats (vi kunde ha utelämnat det).
Variabler
Den offset-distance
fastighet accepterar följande värden:
length
percentage
I båda fallen anger värdet längden på avståndet från startpunkten för sökvägen (standard är 0px
eller 0%
) till slutpunkten för sökvägen.
Exempel
I det här exemplet har vi två cirklar där en liten cirkel färdas längs en större cirkels väg.
Här är SVG-filen som vi använder för att rita formerna:
Nu kan vi ställa in .marker
klassen i vår CSS för att följa .track
klasskoordinaterna:
/* 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%; ) )
Se pennens enkla exempel på animering längs en väg av Geoff Graham (@geoffgraham) på CodePen.
På samma sätt kan vi stoppa offset-distance
värdet på 50% och animeringen skulle släppa halvvägs runt banan:
Se pennens enkla exempel på animering längs en väg av Geoff Graham (@geoffgraham) på CodePen.
Eller för att kontrollera animationens hastighet kan vi multiplicera offset-distance
värdet till 300% för att påskynda saker. Men om vi har specificerat hur lång tid animationen körs till ett värde som är större än vad det tar för elementet att resa vägen, kommer rörelsen att stoppas tills animationen har slutfört sitt intervall innan den upprepas:
Se pennens enkla exempel på animering längs en väg av Geoff Graham (@geoffgraham) på CodePen.
Webbläsarstöd
den offset-distance
egenskapen är fortfarande betraktas som en experimentell funktion vid tidpunkten för denna skrift och det finns ingen dokumentation om webbläsare stöd. Det finns dock dokumentation om motion-path
support och vi kan använda det som en baslinje för tillfället.
Denna webbläsares supportdata kommer från Caniuse, som har mer detaljer. Ett nummer indikerar att webbläsaren stöder funktionen i den versionen och uppåt.
Skrivbord
Krom | Firefox | IE | Kant | Safari |
---|---|---|---|---|
46 | 72 | Nej | 79 | Nej |
Mobil / surfplatta
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | Nej |
ytterligare information
- Motion Path Module Nivå 1 Spec
- Exempel på CodePen
- WebKit-biljett # 139128
- Mozilla-biljett # 1186329
- Microsoft Edge-funktionsförfrågan