0Pricing
CSS Academy · Lección

will-change y promoción de capas

Indique al navegador que promocione elementos a capas de la GPU mediante will-change para lograr animaciones más fluidas.

will-change y promoción de capas es una lección gratuita de CSS Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de CSS Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CSS Academy incluye 4 lecciones en total.

¿Qué es will-change?

will-change indica al navegador que un elemento se animará, lo que le permite preparar optimizaciones con antelación, como promover el elemento a su propia capa del compositor de la GPU antes de que comience la animación.

Sintaxis

Especifique qué propiedad cambiará: will-change: transform, will-change: opacity, will-change: transform, opacity. Use will-change: auto para eliminar las indicaciones cuando termine la animación.

Cuándo usarlo

Aplique will-change únicamente a los elementos que realmente se animarán y solo durante la animación. Añadirlo y quitarlo con JavaScript (mediante una clase) es más eficiente que dejarlo aplicado permanentemente a elementos estáticos.

Coste de promover capas

Cada capa promovida consume memoria de la GPU. Promover muchos elementos simultáneamente provoca presión de memoria, lo que puede degradar el rendimiento, especialmente en dispositivos móviles con una cantidad limitada de RAM de GPU. Promueva capas de forma selectiva y deliberada.

Cómo evitar aplicarlo indiscriminadamente

No aplique nunca will-change a * ni a un gran número de elementos. El coste de la optimización supera sus beneficios cuando se crean demasiadas capas. Haga primero un perfil de rendimiento y añada will-change únicamente cuando se haya confirmado un problema específico de jank.

will-change frente al truco de translateZ

Antes de will-change, los desarrolladores usaban transform: translateZ(0) o translate3d(0,0,0) para forzar la promoción a la GPU. will-change es el enfoque correcto y semántico. El truco de translateZ todavía funciona, pero es un detalle de implementación y no expresa la intención.

Efecto secundario del contexto de apilamiento

Las capas promovidas crean nuevos contextos de apilamiento. Esto afecta al comportamiento de z-index: los elementos hijos de un elemento promovido se apilan en relación con ese elemento, no con la raíz del documento. Tenga en cuenta los cambios en el contexto de apilamiento al promover elementos.

Patrón de aplicación dinámica

Añada will-change en mouseenter o al comenzar una animación, y elimínelo en mouseleave o al terminar la animación. Así el navegador dispone de tiempo para prepararse sin consumir permanentemente memoria de la GPU para elementos inactivos.

  <pre class="snippet">el.addEventListener("mouseenter", () => el.style.willChange = "transform");
el.addEventListener("mouseleave", () => el.style.willChange = "auto");</pre>

Perfilado del número de capas

El panel Layers de Chrome DevTools permite visualizar las capas promovidas. Un número elevado de capas (cientos) indica una promoción excesiva. La sección Memory muestra el uso de memoria de la GPU. Mantenga al mínimo el número de capas promovidas y supervise este valor en perfiles de dispositivos de gama baja.

Alternativa con la propiedad contain

contain: layout paint de CSS restringe los cálculos de layout y paint a un subárbol, de forma similar al aislamiento. Mejora el rendimiento de widgets autónomos sin crear capas de GPU, por lo que es una optimización menos costosa que will-change para elementos no animados.

Compatibilidad y comportamiento de los navegadores

will-change es totalmente compatible con todos los navegadores modernos. Los navegadores lo tratan como una indicación, no como una orden, y pueden ignorarlo si los recursos son limitados. No dependa de ello como garantía; úselo únicamente como una sugerencia para orientar el rendimiento.

Comprobación de conocimientos

¿Cuál es el principal riesgo de aplicar will-change a muchos elementos simultáneamente?

Resumen

will-change promueve los elementos a capas del compositor de la GPU antes de las animaciones, eliminando el coste de promoción al comenzar la animación. Aplíquelo de forma dinámica y selectiva, únicamente cuando el perfil de rendimiento muestre jank, para evitar un consumo excesivo de memoria de la GPU debido a una promoción excesiva.

Preguntas frecuentes

¿La lección «will-change y promoción de capas» es gratis?

Sí — el texto completo de «will-change y promoción de capas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de CSS Academy, actualiza a CoddyKit PRO. El curso de CSS Academy incluye 4 lecciones en total.

¿Qué aprenderé en «will-change y promoción de capas»?

Indique al navegador que promocione elementos a capas de la GPU mediante will-change para lograr animaciones más fluidas. Practicas CSS Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar CSS Academy?

No se requiere experiencia previa. CSS Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «will-change y promoción de capas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de CSS Academy?

Sí. Cada lección de CSS Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. CSS crítico y bloqueo del renderizado
  2. Layout, paint y composite: el pipeline de renderizado
  3. will-change y promoción de capas
  4. Cobertura CSS y estilos no utilizados
← Volver a CSS Academy