Cómo crear transiciones de página en Webflow

Sorprende a tus visitantes con transiciones de página inesperadas y fascinantes.

Cómo crear transiciones de página en Webflow

Aaron Grieve
Diseñador web y gráfico freelance
Ver perfil del autor
Aaron Grieve
Diseñador web y gráfico freelance
Ver perfil del autor
Índice de contenidos

Mucha gente no sabe que durante unos 10 años estudié y practiqué magia de cerca. De hecho, fue mi trabajo a tiempo completo durante una temporada; ¡incluso inventé algunos trucos! ¿Por qué te cuento esto? Porque, aunque no lo creas, ser mago ha influido profundamente en mi forma de diseñar sitios web. Déjame explicarte cómo.

Cuando un mago hace pasar una moneda de una mano a otra con un simple movimiento, la moneda no tiene que desmaterializarse ni atravesar el aire; solo necesita parecer que lo hace.

Este concepto ha guiado mis decisiones de diseño en muchas ocasiones. Cuando se me ocurrió la idea para mi portafolio —el clic en un botón de navegación que provoca una transición fluida de una página a otra—, recuerdo haber pensado: ¿Por dónde empiezo? No soy un experto en JavaScript ni un desarrollador avanzado.

Y entonces me di cuenta: debería usar magia.

No necesitaba escribir un código Ajax personalizado para precargar la página de destino. Solo tenía que activar una interacción que escalara el cuerpo y moviera dos divs fuera del lienzo. Webflow facilitó esto con las Interacciones: lo único que debía hacer era encontrar la forma de añadir un retraso al enlace al hacer clic.

Con la solución en mente, recurrí a mi buen amigo Google y busqué un fragmento de JavaScript que añadiera un retraso a todos mis enlaces. En este artículo, te mostraré cómo lo utilicé.

Esto es lo que vamos a construir.

Paso 1: Añadir el fragmento de retraso del enlace

Añade el siguiente fragmento de JavaScript a la sección de la etiqueta de cierre </body> en la configuración del proyecto:

<script>
function delay (URL) {
setTimeout( function() { window.location = URL }, 850 );
}
</script>

Paso 2: Añadir los componentes de transición de página

Añade 2 divs

Coloca un div en el lienzo, asígnale la clase “Top Div” y aplica la siguiente configuración:

  • Altura: 50vh
  • Posición: Fija, superior
  • Z-index: 99999
  • Fondo: Blanco

Copia el Top Div haciendo clic derecho y seleccionando duplicar en el menú desplegable.

Ahora tienes otro div en el lienzo. Ve al panel de Estilos, selecciona la flecha en el nombre de la clase y haz clic en “Duplicar clase”.

Asígnale una nueva clase llamada “Bottom Div”.

Todos los ajustes se mantienen igual, excepto la posición, que cambiará a la parte inferior:

  • Altura: 50vh
  • Posición: Fija (Fixed), en la parte inferior (Bottom)
  • Z-index: 99999
  • Fondo: Blanco

Estas serán las cortinillas de apertura y cierre de la transición de página. Verás que las cortinillas estorban bastante.

Selecciona el Top Div, abre el panel de Estilo y añade:

  • Ajuste de visualización: Ninguno

Haz lo mismo con el Bottom Div. Ahora que ya no estorban, podemos añadir las interacciones y las URL.

Paso 3: Retrasar los enlaces

Selecciona un botón en tu panel de navegación o cualquier botón de tu página. Abre el panel de Ajustes y, en lugar de seleccionar una página del menú desplegable, vamos a añadir el siguiente fragmento en el campo de URL. No pulses Intro para enviar el enlace — Webflow lo estropeará añadiendo “https://”. Para evitarlo y completar el proceso, simplemente haz clic fuera del enlace:

  • `javascript:delay('URL')

Verás que he sustituido la URL por el “slug” de mi página de destino. Puedes encontrar tu slug yendo al panel de ajustes de la página.

Consejo pro

Al añadir un enlace que dirija al usuario a tu página de inicio, no uses `javascript:delay('home'). En su lugar, simplemente añade una /, así: `javascript:delay('/')

Sigue el proceso anterior para cada enlace que lleve a otra página dentro de tu proyecto. Publica tu proyecto y pruébalo.

Paso 4: Añadir las interacciones

Selecciona un enlace y abre el panel de Interacciones.

Añade una interacción haciendo clic en el icono más junto a Disparador de elemento y elige Clic del ratón (Toque) en el menú desplegable.

En la sección Al 1er clic, abre el menú desplegable.

Y selecciona Iniciar una animación.

Haz clic en el icono más en la sección Animaciones temporizadas.

Ponle a la interacción el nombre “Page Transition Out”. Para que te hagas una idea, esto es lo que hará la página cuando un enlace esté saliendo de ella:

Abre el panel Navegador y selecciona el Top Div.

Vuelve al panel de Interacciones.

Haz clic en el icono de más junto a las acciones temporizadas y elige la opción Ocultar/Mostrar.

Usa los siguientes ajustes:

  • Afectar a: Clase, Todos los elementos con esta clase
  • Temporización: Establecer como estado inicial
  • Visualización: Bloque

A continuación, añade una transición de movimiento haciendo clic en el icono azul de más junto a la interacción de ocultar/mostrar anterior.

Usa estos ajustes:

  • Afectar a: Clase, Todos los elementos con esta clase
  • Temporización: Establecer como estado inicial
  • Y: -50vh

Añade otra interacción de movimiento con los siguientes ajustes:

  • Afectar a: Clase, Todos los elementos con esta clase
  • Suavizado: In Out Quart
  • Duración: 0.75s
  • Y: 0vh

Ahora, selecciona las tres interacciones: resalta la superior y, mientras mantienes presionada la tecla Mayús, selecciona la inferior. Una vez que estén todas resaltadas, haz clic derecho en cualquiera de ellas y selecciona Duplicar en el menú desplegable.

Ahora tendrás tres interacciones más; de nuevo, resáltalas todas, haz clic derecho en cualquiera y elige Cambiar destino en el menú desplegable.

Diseña interacciones y animaciones sin escribir código

Crea interacciones y animaciones complejas sin tener que tocar ni una línea de código.

→
↗
►
↓
←
↑
Leer ahora

Ahora abre el panel Navegador y selecciona el Div inferior.

Vuelve al panel de Interacciones, resalta una de las interacciones recién asignadas y cambia el ajuste de afectar a "clase". Asegúrate de que también esté marcada la opción "Todos los elementos con esta clase".

Resalta tanto el movimiento como el ocultar/mostrar para el Div inferior y establece la temporización en "establecer como estado inicial".

A continuación, haz clic y arrastra el Div inferior hasta colocarlo junto a su equivalente, el Div superior.

Cambia el ajuste Y de la interacción de movimiento del estado inicial a 50vh.

Lo único que queda por hacer es aplicar esta interacción a todos los demás botones de navegación de tu página:

  1. Haz clic en cualquiera de tus otros enlaces
  2. Abre el panel de Interacciones
  3. Haz clic en el icono de más
  4. Elige Clic del ratón (Toque) en el menú desplegable
  5. Abre el menú desplegable de acciones
  6. Selecciona Iniciar una animación (donde deberías ver la interacción que acabamos de completar)
  7. Selecciona aplicarlo a este botón

Repite este proceso para todos tus botones.

5. Añadir interacciones de carga de página

Por ahora tenemos una interacción de salida genial, pero cuando se carga la página siguiente, no se ve tan bien. Vamos a arreglarlo añadiendo una interacción al cargar la página.

Abre el panel de Interacciones, pulsa el icono de más junto al texto del disparador de página y, en el menú desplegable, selecciona la opción de carga de página.

En la sección "Cuando la página empieza a cargar", selecciona Iniciar una animación en el menú desplegable.

Aquí verás la interacción que creamos anteriormente. Vamos a crear una nueva, así que haz clic en el icono de más.

Llama a la interacción "Al cargar la página".

Ahora abre el panel Navegador y selecciona el Div superior.

Vuelve al panel de Interacciones, haz clic en el icono de más y añade una interacción de Movimiento.

Aplica estos ajustes:

  • Afectar a: Clase, Todos los elementos con esta clase
  • Temporización: Establecer como estado inicial
  • Y: 0vh

Añade otra interacción haciendo clic en el icono de más junto a la interacción de movimiento del Div superior y selecciona ocultar/mostrar.

Usa estos ajustes:

  • Afectar a: Clase, Todos los elementos con esta clase
  • Temporización: Establecer como estado inicial
  • Visualización: Bloque

Resalta las dos interacciones creadas presionando Control+clic (en PC) o Comando+clic (en Mac). Cuando ambas estén seleccionadas, haz clic derecho y elige duplicar en el menú desplegable.

Ahora, haz clic derecho en las nuevas interacciones y cambia el objetivo.

Abre el panel Navigator y selecciona el Bottom Div.

Vuelve al panel Interactions, selecciona una de las interacciones del Bottom Div y cámbiala para que afecte a todos los elementos con esta clase.

De nuevo, resalta ambas interacciones del Bottom Div, haz clic y arrástralas hasta las interacciones del Top Div.

Ahora resalta las dos interacciones Move, haz clic derecho y selecciona Duplicate en el menú desplegable.

Selecciona el Top Div y usa estos ajustes:

  • Afectar a: Clase, Todos los elementos con esta clase
  • easing: Ease In Out
  • Duración: 0.4s
  • Y: -50vh

A continuación, selecciona el Bottom Div y aplica estos ajustes:

  • Afectar a: Clase, Todos los elementos con esta clase
  • easing: Ease In Out
  • Duración: 0.4s
  • Y: 50vh

Ya solo queda asegurarse de que todas tus páginas tengan la interacción de carga de página y el Top Div y el Bottom Div en su sitio.

¡Publícalo! Ya has terminado.

Muestra tu trabajo

Este es un efecto de transición de página bastante sencillo; dedica un tiempo a ver qué puedes lograr entre páginas y compártelo. ¡Me encantaría ver lo que creas!


Última actualización
May 31, 2018
Categoría

Artículos relacionados

Cómo crear formularios de búsqueda interactivos con Webflow
Cómo crear formularios de búsqueda interactivos con Webflow

Cómo crear formularios de búsqueda interactivos con Webflow

Cómo crear formularios de búsqueda interactivos con Webflow

Desarrollo
Por
Aaron Grieve
,
,
Leer artículo
Haz clic para copiar al portapapeles
Haz clic para copiar al portapapeles

Haz clic para copiar al portapapeles

Haz clic para copiar al portapapeles

Desarrollo
Por
Aaron Grieve
,
,
Leer artículo
Guía para crear cursores personalizados en Webflow
Guía para crear cursores personalizados en Webflow

Guía para crear cursores personalizados en Webflow

Guía para crear cursores personalizados en Webflow

Desarrollo
Por
Alex Dram
,
,
Leer artículo
Crea una barra lateral fija en Webflow
Crea una barra lateral fija en Webflow

Crea una barra lateral fija en Webflow

Crea una barra lateral fija en Webflow

Desarrollo
Por
Aaron Grieve
,
,
Leer artículo
Cómo mostrar y ocultar contenido con las interacciones de clic de Webflow
Cómo mostrar y ocultar contenido con las interacciones de clic de Webflow

Cómo mostrar y ocultar contenido con las interacciones de clic de Webflow

Cómo mostrar y ocultar contenido con las interacciones de clic de Webflow

Diseño
Por
Mat Vogels
,
,
Leer artículo
Webflow Bit #1: Efecto de zoom al pasar el cursor
Webflow Bit #1: Efecto de zoom al pasar el cursor

Webflow Bit #1: Efecto de zoom al pasar el cursor

Webflow Bit #1: Efecto de zoom al pasar el cursor

Diseño
Por
Nelson Abalos Jr
,
,
Leer artículo

verifone logomonday.com logospotify logoted logogreenhouse logoclear logocheckout.com logoreddit logothe new york times logoideo logoupwork logodiscord logo
verifone logomonday.com logospotify logoted logogreenhouse logoclear logocheckout.com logoreddit logothe new york times logoideo logoupwork logodiscord logo

Empieza gratis

Prueba Webflow todo el tiempo que quieras con nuestro plan Starter gratuito. Compra un plan de sitio de pago para publicar, alojar y desbloquear funciones adicionales.

Empieza, es gratis
Ver demostración

Prueba Webflow todo el tiempo que quieras con nuestro plan Starter gratuito. Compra un plan de sitio de pago para publicar, alojar y desbloquear funciones adicionales.