Cómo crear un efecto de transición de página con aparición gradual con JavaScript y CSS

Introducción
Los efectos de transición de página brindan una estética visual a la experiencia del usuario de su aplicación. JavaScript puede detectar cuándo se carga el modelo de objetos del documento y usarse para agregar o eliminar una clase que aplica una transición CSS para crear un efecto de “aparición gradual”.
En este artículo aprenderá cómo hacer que aparezcan gradualmente sus páginas con JavaScript y CSS.
Prerrequisitos
Para completar este tutorial, necesitará lo siguiente:
classList
Se recomienda comprender el objeto, pero no es obligatorio. Para obtener más información sobre elclassList
objeto, consulte nuestro tutorial Cómo modificar clases CSS en JavaScript .
Paso 1: uso de CSS opacityytransition
En primer lugar, deberá crear reglas CSS para determinar cuándo se abre la página y cuándo se produce el fundido de entrada. Este efecto dependerá de las propiedades opacity
y transition
. Si agrega y elimina la fade
clase en el body
elemento, puede hacer que la opacidad pase de 0
a 1
:
índice.html
head style body { opacity: 1; transition-duration: 0.7s; transition-property: opacity; } body.fade { opacity: 0; } /style/head
El código de entrada gradual que escribirá aplicará rápidamente la fade
clase al body
elemento y lo configurará para que no tenga opacidad ( 0
). Una vez que se cargue la página, eliminará la fade
clase del body
elemento y lo configurará con opacidad completa ( 1
) durante la duración de 0.7
segundos.
Paso 2: aplicación de la clase Fade-in
En su página, justo después de la body
etiqueta de apertura, asigne la fade
clase al body
elemento:
índice.html
body script document.body.className = 'fade'; /script !-- ... --/body
Alternativamente, si su body
elemento contiene clases existentes, puede aplicar la fade
clase utilizando el .add()
método en el classList
objeto.
En su index.html
archivo, agregue el .add()
método al classList
objeto e inserte la fade
clase como argumento:
índice.html
body script document.body.classList.add('fade'); /script !-- ... --/body
Esto agregará la fade
clase a sus clases existentes.
Paso 3: eliminar la clase Fade-in
Para eliminar una transición de entrada gradual de sus clases, puede implementar un detector de eventos para cuando se haya cargado el modelo de objetos del documento. También puede implementar un retraso para garantizar que el efecto de transición sea visible para un lector.
En su index.html
archivo, emplee un detector de eventos y asigne al nombre de clase de su body
elemento el valor de una cadena vacía:
índice.html
body !-- ... -- script document.addEventListener("DOMContentLoaded", () = { window.setTimeout(function() { document.body.className = ''; }, 230); }); /script/body
La cadena vacía le dice a JavaScript que revierta el nombre de la clase después de que se haya cargado la página.
Alternativamente, si su body
elemento contiene clases existentes, utilice el .remove()
método en el classList
objeto:
índice.html
body !-- ... -- script document.addEventListener("DOMContentLoaded", () = { window.setTimeout(function() { document.body.classList.remove('fade'); }, 230); }); /script/body
El .remove()
método eliminará la fade
clase.
Ahora, cuando cargue la página, inicialmente se agregará una fade
clase al body
elemento. Una transición CSS comenzará a cambiar la opacidad de 0
a 1
en el transcurso de 0.7
unos segundos. Una vez que la página haya terminado de cargarse, la fade
clase se eliminará del body
elemento.
Conclusión
En este artículo, utilizaste una combinación de JavaScript y CSS para crear un efecto de “aparición gradual” cuando se carga una página. Utilizaste opacity
y transition
para crear el efecto. Luego, utilizaste la manipulación del DOM para agregar y eliminar una clase que activa la transición.
Deja una respuesta