Les transitions CSS peuvent-elles être utilisées pour permettre à un paragraphe de texte de se fondre lors du chargement de la page?
J'aime vraiment à quoi cela ressemblait sur http://dotmailapp.com/ et j'aimerais utiliser un effet similaire en utilisant CSS. Le domaine a depuis été acheté et n'a plus l'effet mentionné. Une copie archivée peut être consultée sur la Wayback Machine .
Illustration
Ayant ce balisage:
<div id="test">
<p>This is a test</p>
</div>
Avec la règle CSS suivante:
#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;
}
Comment déclencher la transition en charge?
css
css-transitions
opacity
user1556266
la source
la source
Réponses:
Méthode 1:
Si vous recherchez une transition auto-invoquante, vous devez utiliser les animations CSS 3 . Ils ne sont pas pris en charge non plus, mais c'est exactement le genre de chose pour laquelle ils ont été faits.
CSS
Démo
Prise en charge du navigateur
Tous les navigateurs modernes et Internet Explorer 10 (et versions ultérieures): http://caniuse.com/#feat=css-animation
Méthode 2:
Alternativement, vous pouvez utiliser jQuery (ou JavaScript simple; voir le troisième bloc de code) pour changer la classe au chargement:
jQuery
CSS
JavaScript simple (pas dans la démo)
Démo
Prise en charge du navigateur
Tous les navigateurs modernes et Internet Explorer 10 (et versions ultérieures): http://caniuse.com/#feat=css-transitions
Méthode 3:
Ou, vous pouvez utiliser la méthode utilisée par .Mail :
jQuery
CSS
Démo
Prise en charge du navigateur
jQuery 1.x : tous les navigateurs modernes et Internet Explorer 6 (et versions ultérieures): http://jquery.com/browser-support/
jQuery 2.x : tous les navigateurs modernes et Internet Explorer 9 (et versions ultérieures): http: // jquery.com/browser-support/
Cette méthode est la plus compatible, car le navigateur cible n'a pas besoin de prendre en charge les transitions ou animations CSS 3 .
la source
opacity: 1 !important;
et mis un<noscript>
élément.$("#test p").addClass("load");
plusieurs fois? Faire$("#test p").removeClass('load').addClass("load");
ne fait pas le travail car l'animation est déjà arrêtée. Puis-je déclencher un redémarrage à partir de JavaScript?Vous pouvez utiliser l'
onload=""
attribut HTML et utiliser JavaScript pour ajuster le style d'opacité de votre élément.Laissez votre CSS comme vous l'avez proposé. Modifiez votre code HTML pour:
Cela fonctionne également pour fondre la page complète une fois le chargement terminé:
HTML:
CSS:
Consultez le site Web de W3Schools : transitions et un article pour changer de style avec JavaScript .
la source
<div id="test" onload="this.style.opacity='1'">
. Je ne sais pas si cela signifie que l'événement est déclenché avant le chargement du corps entier.En réponse à la question de @ AMK sur la façon de faire des transitions sans jQuery. Un exemple très simple que j'ai jeté ensemble. Si j'avais le temps de réfléchir davantage, je pourrais peut-être éliminer complètement le code JavaScript:
la source