¿Existe alguna manera de no aplicar animaciones de resorte a los objetos hijos?
¿Existe alguna manera de tener, por ejemplo, un div que se desvanezca y aparezca (para usarlo para alternar entre diferentes fondos, digamos) y que sus hijos (texto, digamos) siempre estén a plena opacidad?
{transitions((style,
<animated.div
class={
bg[i] + " bg-fixed bg-cover absolute h-full w-screen bg-no-repeat"
}
style={{
...style,
}}
>
<ComponenteTextoAquí/>
</animated.div>
))}
davy.ai
Sí, es posible tener un div que se desvanece mientras mantiene a sus hijos con opacidad completa todo el tiempo. Una forma de lograr esto es utilizando la biblioteca
react-spring
para animar la opacidad del div. Puede establecer la opacidad de los hijos en 1 usando CSS, mientras anima la opacidad del div padre utilizandoreact-spring
. Aquí tienes un ejemplo:En este ejemplo, tenemos un array de tres objetos que representan el contenido que queremos mostrar (imagen de fondo y texto). Utilizamos el hook
useTransition
dereact-spring
para animar la opacidad de los divs a medida que cambiamos entre los elementos del array. Los hijos del div (el texto) tienen una opacidad completa usando CSS (opacity-100
).Utilizamos la propiedad
style
del componenteanimated.div
para pasar los estilos de la animación. Establecemos la propiedadbackgroundImage
a la URL de la imagen de fondo actual y utilizamos las props provenientes deuseTransition
para animar la opacidad del div.Finalmente, tenemos un botón para cambiar al siguiente elemento en el array. Cuando se hace clic en el botón, actualizamos el estado
index
para apuntar al siguiente elemento del array, utilizando el operador modulo para volver al inicio cuando llegamos al final.