Introducción
En este laboratorio, exploraremos cómo hacer una transición suave en la altura de un elemento desde 0 hasta auto cuando su altura es desconocida. Esta técnica es útil para crear menús desplegables, acordeones y otros contenidos animados. Al utilizar las propiedades CSS transition, max-height y overflow, así como JavaScript para establecer dinámicamente el valor de la altura, podemos crear una experiencia de usuario sin problemas y visualmente atractiva.
Transición de altura
index.html y style.css ya se han proporcionado en la máquina virtual.
Este fragmento de código realiza una transición en la altura de un elemento desde 0 hasta auto cuando su altura es desconocida mediante los siguientes pasos:
- Utiliza la propiedad
transitionpara especificar que los cambios enmax-heightdeben transicionarse durante un período de0,3 s. - Utiliza la propiedad
overflowestablecida enhiddenpara evitar que el contenido del elemento oculto desborde su contenedor. - Utiliza la propiedad
max-heightpara especificar una altura inicial de0. - Utiliza la pseudo-clase
:hoverpara cambiarmax-heightal valor de la variable--max-heightestablecida por JavaScript. - Utiliza la propiedad
Element.scrollHeighty el métodoCSSStyleDeclaration.setProperty()para establecer el valor de--max-heighten la altura actual del elemento. - Nota: Este enfoque provoca un reflujo en cada fotograma de animación, lo que puede causar retrasos cuando hay un gran número de elementos debajo del elemento en transición.
<div class="trigger">
Pasa el cursor por encima de mí para ver una transición de altura.
<div class="el">Contenido adicional</div>
</div>
.el {
transition: max-height 0.3s;
overflow: hidden;
max-height: 0;
}
.trigger:hover > .el {
max-height: var(--max-height);
}
let el = document.querySelector(".el");
let height = el.scrollHeight;
el.style.setProperty("--max-height", height + "px");
Haga clic en 'Go Live' en la esquina inferior derecha para ejecutar el servicio web en el puerto 8080. Luego, puede actualizar la pestaña Web 8080 para previsualizar la página web.
Resumen
¡Felicitaciones! Has completado el laboratorio de Transición de Altura. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.