¿Se pueden usar las transiciones CSS para permitir que un párrafo de texto se desvanezca al cargar la página?
Realmente me gusta cómo se veía en http://dotmailapp.com/ y me encantaría usar un efecto similar usando CSS. Desde entonces, el dominio se ha comprado y ya no se menciona el efecto. Se puede ver una copia archivada en Wayback Machine .
Ilustración
Tener este marcado:
<div id="test">
<p>This is a test</p>
</div>
Con la siguiente regla CSS:
#test p {
opacity: 0;
margin-top: 25px;
font-size: 21px;
text-align: center;
-webkit-transition: opacity 2s ease-in;
-moz-transition: opacity 2s ease-in;
-o-transition: opacity 2s ease-in;
-ms-transition: opacity 2s ease-in;
transition: opacity 2s ease-in;
}
¿Cómo se puede activar la transición en la carga?
css
css-transitions
opacity
usuario1556266
fuente
fuente
Respuestas:
Método 1:
Si está buscando una transición autoinvocatoria, entonces debe usar animaciones CSS 3 . Tampoco son compatibles, pero este es exactamente el tipo de cosas para las que fueron hechas.
CSS
Manifestación
Soporte de navegador
Todos los navegadores modernos e Internet Explorer 10 (y posteriores): http://caniuse.com/#feat=css-animation
Método 2:
Alternativamente, puede usar jQuery (o JavaScript simple; vea el tercer bloque de código) para cambiar la clase en la carga:
jQuery
CSS
JavaScript simple (no en la demostración)
Manifestación
Soporte de navegador
Todos los navegadores modernos e Internet Explorer 10 (y posteriores): http://caniuse.com/#feat=css-transitions
Método 3:
O puede usar el método que utiliza .Mail :
jQuery
CSS
Manifestación
Soporte de navegador
jQuery 1.x : Todos los navegadores modernos e Internet Explorer 6 (y posterior): http://jquery.com/browser-support/
jQuery 2.x : Todos los navegadores modernos e Internet Explorer 9 (y posterior): http: // jquery.com/browser-support/
Este método es el más compatible, ya que el navegador de destino no necesita admitir transiciones o animaciones CSS 3 .
fuente
opacity: 1 !important;
y puse un<noscript>
elemento.$("#test p").addClass("load");
varias veces? Hacer$("#test p").removeClass('load').addClass("load");
no funciona porque la animación ya se detuvo. ¿Puedo activar un reinicio desde JavaScript?Puede usar el
onload=""
atributo HTML y JavaScript para ajustar el estilo de opacidad de su elemento.Deje su CSS como lo propuso. Edite su código HTML para:
Esto también funciona para atenuar la página completa cuando termina de cargar:
HTML:
CSS:
Visite el sitio web de W3Schools : transiciones y un artículo para cambiar estilos con JavaScript .
fuente
<div id="test" onload="this.style.opacity='1'">
. Sin embargo, no estoy seguro si significa que el evento se dispara antes de que se cargue todo el cuerpo.En respuesta a la pregunta de @ AMK sobre cómo hacer transiciones sin jQuery. Un ejemplo muy simple que arrojé juntos. Si tuviera tiempo para pensarlo un poco más, podría eliminar el código JavaScript por completo:
fuente