motion-offset
. Deze, en alle andere gerelateerde beweging- * eigenschappen, worden in de specificatie hernoemd naar offset- *. We veranderen de namen hier in de almanak. Als je het nu wilt gebruiken, is het waarschijnlijk het beste om beide syntaxis te gebruiken.
De motion-offset
eigenschap in CSS zegt: hoe ver motion-path
ben je? Dit is de animeerbare eigenschap die is gekoppeld aan bewegingspaden.
.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 */ ) )
In het bovenstaande voorbeeld hebben we de beginwaarde ingesteld motion-offset
op 0%
, hoewel het vermeldenswaard is dat nul de standaardwaarde is, zelfs als deze niet expliciet is gedefinieerd (we hadden dat kunnen weglaten).
Variabelen
De offset-distance
eigenschap accepteert de volgende waarden:
length
percentage
In beide gevallen specificeert de waarde de afstand vanaf het startpunt van het pad (standaard is 0px
of 0%
) tot het eindpunt van het pad.
Voorbeeld
In dit voorbeeld hebben we twee cirkels waarbij een kleine cirkel langs het pad van een grotere cirkel beweegt.
Hier is het SVG-bestand dat we gebruiken om de vormen te tekenen:
Nu kunnen we de .marker
klasse in onze CSS zo instellen dat deze de klassecoördinaten volgt .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%; ) )
Zie het eenvoudige voorbeeld van een animatie langs een pad door Geoff Graham (@geoffgraham) op CodePen.
Evenzo kunnen we de offset-distance
waarde stoppen op 50% en de animatie zou halverwege het pad afnemen:
Zie het eenvoudige voorbeeld van een animatie langs een pad door Geoff Graham (@geoffgraham) op CodePen.
Of, om de snelheid van de animatie te regelen, kunnen we de offset-distance
waarde vermenigvuldigen tot 300% om de zaken te versnellen. Als we echter hebben gespecificeerd hoe lang de animatie wordt uitgevoerd met een waarde die groter is dan wat het element nodig heeft om het pad af te leggen, stopt de beweging totdat de animatie zijn interval heeft voltooid voordat deze wordt herhaald:
Zie het eenvoudige voorbeeld van een animatie langs een pad door Geoff Graham (@geoffgraham) op CodePen.
Browser-ondersteuning
de offset-distance
eigenschap wordt op het moment van schrijven nog steeds als een experimentele functie beschouwd en er is geen documentatie over browserondersteuning. Er is echter documentatie over motion-path
ondersteuning en die kunnen we voorlopig als uitgangspunt gebruiken.
Deze browserondersteuningsgegevens zijn van Caniuse, die meer details bevat. Een getal geeft aan dat de browser de functie ondersteunt vanaf die versie.
Bureaublad
Chrome | Firefox | D.W.Z | Rand | Safari |
---|---|---|---|---|
46 | 72 | Nee | 79 | Nee |
Mobiel / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | Nee |
Extra informatie
- Motion Path Module Level 1 Spec
- Voorbeelden op CodePen
- WebKit-ticket # 139128
- Mozilla-ticket # 1186329
- Microsoft Edge-functieverzoek