logo oujood
🔍

Utilistion de la propriété css offset-distance

OUJOOD.COM

La propriété css offset-distance : Définition

La propriété offset-distance en CSS indique : à quelle distance de la trajectoire de mouvement vous trouvez-vous ? Il s'agit de la propriété animable associée à la trajectoire de mouvement.

Syntaxe de la propriété css offset-distance

offset-distance: valeur|valeur;

Valeurs par défaut0
Inherited: non
Animable : oui En savoir plus sur l'animable
Version: CSS3
Syntaxe JavaScript: object.style.offsetDistance="200px"

Valeurs possible

La propriété offset-distance accepte les valeurs suivantes :
longueur, pourcentage
Dans les deux cas, la valeur indique la longueur de la distance entre le point de départ (0px ou 0 % par défaut) et le point d'arrivée de la trajectoire.

Exemple

Dans cet exemple, nous avons trois cercles où deux petits cercles voyagent le long de la trajectoire d'un plus grand cercle.

Exemple :    📋 Copier le code

<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
    <title>La propriété CSS offset-distance </title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>

.marker1 {
  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: move1 3s linear infinite;
}
.marker2 {
  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: move2 3s linear infinite;
}
@keyframes move1 {
  /*  Déplacer le .marker1 de sa valeur par défaut qui est 
  0% à 100% de la longueur du chemin*/
  100% { offset-distance: 100%; }
}
@keyframes move2 {
  /* Déplacer le .marker1 de sa valeur par défaut qui est
  0% à 50% de la longueur du chemin */
  100% { offset-distance: 50%; }
}
</style>
</head>
<body>

<h1>La propriété CSS offset-distance </h1>

<svg viewbox="0,0 10,10" width="200px" height="200px">
  
  <!-- Le chemin que doit suivre le cercle -->  
  <path 
    fill="red"
    stroke-width="0.25"
    d="M 5 5 m -4, 0 a 4,4 0 1,0 8,0 a 4,4 0 1,0 -8,0"
  />
  
  <!-- le mouvement suit le chemin tout entier---->
  <circle class="marker1" r="0.5" fill="orange"></circle>
   <!-- le mouvement suit la moitié du chemin  -->
  <circle class="marker2" r="0.5" fill="blue"></circle>
  </svg>
</body>
</html>

Dans l'exemple ci-dessus, nous avons fixé la valeur initiale du départ de mouvement à 0 %, pour les deux petits cercles, noter que zéro est la valeur par défaut, même si elle n'est pas explicitement définie (nous pouvons ne pas l'indiquer).
Et la valeur de du point d’arrivée pour :
- le cercle orange à 100%
- le cercle bleu à 50%

Prise en charge de la propriété dans les navigateurs

Les numéros figurant dans le tableau indiquent la première version du navigateur qui prend totalement en charge la propriété.

ExplorateurGoogle ChromeInternet ExplorerFirefoxSafariOpera
Verssion557972non supporté 42

Exemple

Reprenons le code de l’exemple précèdent, en modifiant la règle @keyframes move2 comme suit :

@keyframes move2 {
  /* Déplacer le .marker1 de sa valeur par défaut qui est
  0% à 50% de la longueur du chemin */
  0% { offset-distance: 50%; }
  100% { offset-distance: 75%; }
} 

Dans cet exemple le mouvement commence à 25% du chemin et se termine à 75%