Manejo de Animaciones de Webflow con Wized

Nicola ToledoNicola Toledo
Frontend Development
·3 min de lectura

El Problema

Webflow aplica animaciones a los elementos del DOM en la carga de la página. Sin embargo, cuando Wized carga elementos dinámicamente después de la carga inicial, estas animaciones no se aplican a los nuevos elementos insertados. Esto puede dar lugar a una experiencia de usuario menos atractiva.

En este artículo, trataré dos soluciones para abordar este problema: reiniciar las interacciones de Webflow mediante la API de JavaScript de Webflow y utilizar un controlador externo para gestionar la animación.

1. Reiniciar las Interacciones de Webflow

El primer enfoque consiste en reiniciar todas las interacciones de Webflow utilizando la API de JavaScript de Webflow. Este método reinicializa todas las animaciones de la página.

Implementación

Para reiniciar las interacciones de Webflow, puedes usar el siguiente código JavaScript:

window.Webflow.destroy();
window.Webflow.ready();
window.Webflow.require("ix2")?.init();

Por ejemplo, si queremos reiniciar las interacciones de Webflow después de que Wized haya cargado una lista de elementos, podemos hacer lo siguiente:

window.Wized = window.Wized || [];
window.Wized.push((Wized) => {
  const listElement = Wized.elements.get("listItem");

  listElement.on("list", () => {
    window.Webflow.destroy();
    window.Webflow.ready();
    window.Webflow.require("ix2")?.init();
  });
});

Consideraciones

  • Reinicio Global: Este método reinicia todas las animaciones de la página, no solo las relacionadas con los elementos cargados dinámicamente.
  • Problemas con los Estados Iniciales: Las animaciones con estados iniciales también se reiniciarán, lo que puede generar comportamientos no deseados. Por ejemplo, si tienes una animación de carga con un estado inicial configurado como visible, reaparecerá tras el reinicio, pudiendo interrumpir la experiencia del usuario.

2. Uso de un Controlador Externo

Un enfoque más controlado consiste en utilizar un controlador externo para gestionar las animaciones. Esto implica vincular la animación a un elemento que ya esté presente en el DOM en la carga de la página y activarla de forma programática después de que Wized cargue el contenido dinámico.

Implementación

Supongamos que tienes un botón que activa una animación. Así es como puedes implementarlo:

  1. Asegúrate de que el botón y el elemento animado estén presentes en la carga de la página.
  2. Vincula la animación de Webflow al botón.
  3. Usa Wized para activar programáticamente el clic en el botón, iniciando así la animación.

Por ejemplo:

Webflow panel
Webflow panel
Wized logic
Wized logic

Consideraciones

  • Control y Flexibilidad: Este enfoque te da un control preciso sobre qué animaciones activar sin afectar a las demás.
  • Presencia de los Elementos: Tanto el elemento disparador (por ejemplo, el botón) como el elemento animado deben estar presentes en el DOM en la carga de la página para que Webflow pueda vincular correctamente las animaciones.

Resumen

En resumen, al integrar las animaciones de Webflow con Wized, tienes dos soluciones principales:

  1. Reiniciar las Interacciones de Webflow: Este método reinicia todas las animaciones de la página, pero puede generar comportamientos no deseados si no se gestiona con cuidado.
  2. Usar un Controlador Externo: Esta solución ofrece mayor control al activar las animaciones de forma programática, asegurando que solo se vean afectadas las animaciones deseadas.

Elegir el enfoque adecuado depende de tu caso de uso específico. Si necesitas un reinicio rápido y global, el primer método puede ser apropiado. Sin embargo, si requieres un control más granular, utilizar un controlador externo es probablemente la mejor opción.

Implementando estas estrategias, puedes mantener una experiencia de usuario dinámica y atractiva en tus sitios Webflow, incluso cuando utilizas Wized para cargar contenido de forma dinámica.

Nicola Toledo

¿Tienes un proyecto en mente?

Veamos si te puedo ayudar

Reserva una llamada gratuita