Saltar al contenido

Propiedad offset-path de CSS

La propiedad CSS offset-path se utiliza para especificar una trayectoria de movimiento que un elemento debe seguir y define la posición del elemento.

La posición en la trayectoria está determinada por la propiedad offset-distance.

En las versiones anteriores de la especificación, el nombre de offset-path era ''motion-path''. Sin embargo, se cambió a offset-path ya que la propiedad especifica posiciones estáticas.

INFO

La propiedad offset-path en sí no es animable; solo define la trayectoria. La animación se controla a través de la propiedad offset-distance.

Si ha definido offset-path en CSS, puede utilizar JavaScript para controlar la animación.

Valor inicialnone
Se aplica aElementos transformables.
HeredableNo.
AnimableNo.
VersiónMotion Path Module Level 1
Sintaxis DOMobject.style.offsetPath = "ray()";

Sintaxis

Sintaxis de CSS offset-path

css
offset-path: none | ray() | path() | url() | <basic-shape>;

Ejemplo de la propiedad offset-path con las propiedades offset-rotate y animation:

Ejemplo de código CSS offset-path

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      body {
        background-color: #ccc;
      }
      .mover {
        width: 70px;
        height: 70px;
        background: linear-gradient(#8ebf42 50%, #1c87c9 50%);
        position: absolute;
        left: 30%;
        top: 100px;
        offset-path: path("M18.45,58.46s52.87-70.07,101.25-.75,101.75-6.23,101.75-6.23S246.38,5.59,165.33,9.08s-15,71.57-94.51,74.56S18.45,58.46,18.45,58.46Z");
        offset-rotate: reverse;
        animation: move 3s linear infinite;
      }
      @keyframes move {
        100% {
          offset-distance: 100%;
        }
      }
    </style>
    <body>
      <h2>Offset-path property example</h2>
      <div class="mover"></div>
    </body>
</html>

Ejemplo de la propiedad offset-path:

Otro ejemplo de código CSS offset-path

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      body {
        background-color: #666;
      }
      .item {
        width: 100px;
        height: 40px;
        offset-position: 0% 0%;
        offset-path: path('m 100 50 h 150 v 150');
      }
      #box1 {
        background-color: #8ebf42;
        offset-distance: -280%;
      }
      #box2 {
        background-color: #1c87c9;
        offset-distance: 190%;
      }
    </style>
    <body>
      <div class="item" id="box1"></div>
      <div class="item" id="box2"></div>
    </body>
</html>

Valores

ValorDescripción
noneNo se especifica ninguna trayectoria de movimiento. Este es el valor predeterminado.
ray()Un segmento de línea que comienza desde la posición de la caja y se extiende en la dirección definida por el ángulo especificado.
url()Hace referencia al ID de un elemento SVG que se utilizará como trayectoria de movimiento.
<basic-shape>Especifica una forma que incluye: circle(), ellipse(), inset(), polygon() o path().

Práctica

¿Qué hace la propiedad CSS offset-path?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.