Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La propriété offset-path définit le tracé d'un mouvement sur lequel un élément est positionné. La position exacte de l'élément sur ce tracé est déterminée grâce à la propriété offset-distance. Le tracé d'un mouvement peut être défini grâce à un chemin ou à plusieurs chemins successifs ou encore grâce à la géométrie d'une forme. Chaque forme ou chemin doit définir une position initiale pour la valeur calculée 0 de offset-distance ainsi qu'une direction initiale qui définit la rotation de l'objet dans sa position initiale.

Une direction de 0 degré est équivalente au vecteur de l'axe des abscisses dans le système de coordonnées relatif à l'objet. Autrement dit, si aucune transformation n'est appliquée sur l'élément ou sur ses ancêtres, une rotation de 0 degré pointera vers la droite.

Valeur introuvable dans la base de données

Syntaxe

TBD

Syntaxe formelle

La syntaxe n'a pas été trouvée !

Exemples

L'exemple qui suit est tiré de cette démo présente sur CodePen. Le code SVG dessine la forme d'une maison avec une cheminée. Les propriétés motion-path utilisées permettent de déplacer l'icône (des ciseaux) autour de la maison. On notera que la pseudo-classe :path() est utilisée avec motion-path et que le document SVG contient <path>. Si on compare ces deux données, on verra qu'elles sont identiques.

CSS

#firstScissorHalf {
  offset-path: path('M900,190  L993,245 V201  A11,11 0 0,1 1004,190  H1075  A11,11 0 0,1 1086,201  V300  L1294,423 H1216  A11,11 0 0,0 1205,434  V789  A11,11 0 0,1 1194,800  H606  A11,11 0 0,1 595,789  V434  A11,11 0 0,0 584,423  H506 L900,190');
}

#secondScissorHalf {
  offset-path: path('M900,190  L993,245 V201  A11,11 0 0,1 1004,190  H1075  A11,11 0 0,1 1086,201  V300  L1294,423 H1216  A11,11 0 0,0 1205,434  V789  A11,11 0 0,1 1194,800  H606  A11,11 0 0,1 595,789  V434  A11,11 0 0,0 584,423  H506 L900,190');
}

SVG

<svg xmlns="http://www.w3.org/2000/svg"
     width="700"
     height="450"
     viewBox="350 0 1400 900">
  <rect x="595"
        y="423"
        width="610"
        height="377"
        fill="blue" />
  <polygon points="506,423 900,190 1294,423"
           fill="yellow" />
  <polygon points="993,245 993,190 1086,190 1086,300"
           fill="red" />
  <path id="house" d="M900,190 L993,245 V201 A11,11 0 0,1 1004,190 H1075 A11,11 0 0,1 1086,201 V300 L1294,423 H1216 A11,11 0 0,0 1205,434 V789 A11,11 0 0,1 1194,800 H606 A11,11 0 0,1 595,789 V434 A11,11 0 0,0 584,423 H506 L900,190"
        fill="none"
        stroke="black"
        stroke-width="13"
        stroke-linejoin="round"
        stroke-linecap="round" />
  <path id="firstScissorHalf"
        d="M30,0 H-10 A10,10 0 0,0 -20,10 A20,20 0 1,1 -40,-10 H20 A10,10 0 0,1 30,0 M-40,20 A10,10 1 0,0 -40,0 A10,10 1 0,0 -40,20 M0,0"
        transform="translate(0,0)"
        fill="green"
        stroke="black"
        stroke-width="5"
        stroke-linejoin="round"
        stroke-linecap="round"
        fill-rule="evenodd" />
  <path id="secondScissorHalf"
        d="M30,0 H-10 A10,10 0 0,1 -20,-10 A20,20 0 1,0 -40,10 H20 A10,10 0 0,0 30,0 M-40,-20 A10,10 1 0,0 -40,0 A10,10 1 0,0 -40,-20 M0,0"
        transform="translate(0,0)"
        fill="forestgreen"
        stroke="black"
        stroke-width="5"
        stroke-linejoin="round"
        stroke-linecap="round"
        fill-rule="evenodd" />
</svg>

Résultat

Spécifications

Spécification État Commentaires
Motion Path Module Level 1
La définition de 'offset-path' dans cette spécification.
Version de travail Définition initiale.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung Internet
Support simple
Expérimentale
Chrome Support complet 55
Notes
Support complet 55
Notes
Notes path() is the only value type supported.
Support complet 46
Autre nom
Autre nom Cette fonctionnalité utilise le nom non-standard : motion-path
Edge ? Firefox Support complet 63
Notes Désactivée
Support complet 63
Notes Désactivée
Notes path() is the only value type supported.
Désactivée From version 63: this feature is behind the layout.css.motion-path.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE ? Opera Support complet 45
Notes
Support complet 45
Notes
Notes path() is the only value type supported.
Support complet 32
Autre nom
Autre nom Cette fonctionnalité utilise le nom non-standard : motion-path
Safari ? WebView Android Support complet 55
Notes
Support complet 55
Notes
Notes path() is the only value type supported.
Support complet 46
Autre nom
Autre nom Cette fonctionnalité utilise le nom non-standard : motion-path
Chrome Android Support complet 55
Notes
Support complet 55
Notes
Notes path() is the only value type supported.
Support complet 46
Autre nom
Autre nom Cette fonctionnalité utilise le nom non-standard : motion-path
Edge Mobile ? Firefox Android Support complet 63
Notes Désactivée
Support complet 63
Notes Désactivée
Notes path() is the only value type supported.
Désactivée From version 63: this feature is behind the layout.css.motion-path.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Support complet 45
Notes
Support complet 45
Notes
Notes path() is the only value type supported.
Support complet 32
Autre nom
Autre nom Cette fonctionnalité utilise le nom non-standard : motion-path
Safari iOS ? Samsung Internet Android Support complet 6.0

Légende

Support complet  
Support complet
Compatibilité inconnue  
Compatibilité inconnue
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Voir les notes d'implémentation.
Voir les notes d'implémentation.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Cette fonctionnalité utilise un nom non-standard.
Cette fonctionnalité utilise un nom non-standard.

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : SphinxKnight
Dernière mise à jour par : SphinxKnight,