css3 animation de transition sur la charge?
Est-il possible d'utiliser CSS3 animation de transition au chargement de la page sans l'aide de Javascript?
C'est le genre de ce que je veux, mais au chargement de la page:
http://rilwis.googlecode.com/svn/trunk/demo/image-slider.html
Ce que j'ai trouvé jusqu'à présent
- CSS3 transition-delay, un moyen de retarder les effets sur les éléments. Ne fonctionne que sur le vol stationnaire.
- CSS3 image clé, les travaux sur la charge, mais sont extrêmement lents. Pas utile à cause de cela.
- CSS3 transition est assez rapide, mais ne pas les animer au chargement de la page.
- presque rien à voir, par exemple, mysociety.org/2011/08/11/mobile-operators-breaking-content et robertnyman.com/2006/04/25/...
- Les images clés permettra d'atteindre cet objectif et d'offrir le meilleur de secours lorsque les animations CSS3 ne sont pas pris en charge. Pourquoi pensez-vous qu'ils sont trop lent?
Vous devez vous connecter pour publier un commentaire.
Vous peut exécuter un CSS animation de chargement de page sans utiliser de JavaScript; vous avez juste à utiliser CSS3 images clés.
Regardons un Exemple...
Voici une démonstration d'un menu de navigation coulissantes en place à l'aide CSS3 seulement:
CSS:
HTML:
Décomposer...
Les parties importantes ici sont l'animation avec des images clés que nous appelons
slideInFromLeft
......qui dit en gros "au début, l'en-tête sera au large de la côté gauche de l'écran par sa largeur et à la fin sera en place".
La deuxième partie est l'appel que
slideInFromLeft
animation:Ci-dessus est la version courte, mais ici est la version détaillé pour plus de clarté:
Vous pouvez faire toutes sortes de choses intéressantes, comme un glissement dans le contenu, ou en attirant l'attention sur les domaines.
Voici ce que le W3C a à dire.
!important
indicateur dans votre@keyframes
sera ignorée et peut avoir un comportement inattendu. Vérifier ici pour plus d'info. Par exemple, je voulais à la transition de la largeur sur un diagramme à barres horizontales. La largeur sur les barres sont définies comme des styles en ligne, donc je voulaiswidth: 0px !important
à0%
. J'ai plutôt utilisétransform: translateX (-100%);
à0%
ettransform: translateX (0%);
à100%
avecoverflow:hidden
sur l'élément parent.Très peu de Javascript est nécessaire:
Maintenant le CSS:
Je sais que la question a dit "sans Javascript", mais je pense qu'il vaut la peine de remarquer qu'il y est une solution simple comprenant une ligne de Javascript.
Il pourrait même être le Javascript en ligne, quelque chose comme ça:
C'est tout le JavaScript qui est nécessaire.
body
classes d'utilisation:document.body.classList.add('loaded)
document.body.className += " loaded";
à être un peu moins verbeux pour ajout leloaded
classe dans les classes existantes.Je pense avoir trouvé une sorte de travail autour de l'OP question - au lieu d'une transition de début " sur.chargement de la page - j'ai trouvé que l'utilisation d'une animation pour une opacité fondu eu le même effet, je cherchais la même chose que l'OP).
Donc je voulais avoir le corps du texte fondu de blanc(de même que le site de fond) noir couleur du texte sur la page de la charge - et je ne l'ai été de codage depuis lundi alors que je cherchais un " sur les.charger le style de chose code, mais ne savez pas par JS - donc voici mon code qui a bien fonctionné pour moi.
Et pour quelque raison que ce soit, cela ne fonctionne pas pour
.class
seulement#id
's(du moins pas sur le mien)Espère que cette aide comme je sais que ce site m'aide beaucoup!
Bien, c'est une question délicate.
La réponse est "pas vraiment".
CSS n'est pas une couche fonctionnelle. Il n'a pas la moindre conscience de ce qui se passe et quand. Il est utilisé simplement pour ajouter un de présentation couche à différents "flags" (classes, id, états).
Par défaut, CSS/DOM ne pas fournir tout type de "charge" de l'état pour CSS à utiliser. Si vous vouliez/ont été en mesure d'utiliser le JavaScript, vous souhaitez affecter une classe à
body
ou quelque chose à activer un peu de CSS.Cela étant dit, vous pouvez créer un hack pour cela. Je vais vous donner un exemple ici, mais il peut ou peut ne pas être applicables à votre situation.
Nous fonctionnons sur l'hypothèse que "fermer" est "assez bon":
Voici un extrait de notre feuille de style CSS:
Nous sommes également sur l'hypothèse que les navigateurs modernes rendre progressivement, de sorte que notre dernier élément sera rendu en dernier, et donc ce CSS sera activé.
Similaire à @Rolf de solution, mais ignorer référence à des fonctions externes ou en jouant avec classe. Si l'opacité est de rester fixé à 1 une fois chargé, il suffit d'utiliser de script en ligne de changer directement l'opacité via style. Par exemple
où CSS sytle "fadein" est défini par @Rolf,la définition de la transition et de réglage de l'opacité à l'état initial (c'est à dire 0)
le seul hic, c'est que cela ne fonctionne pas avec SPAN ou DIV éléments, car ils n'ont pas de travail d'événement onload
démarrer avec passez de corps qu'Il va commencer quand d'abord la souris se déplace sur l'écran, ce qui est la plupart du temps moins d'une seconde après l'arrivée, le problème ici est qu'il s'inverse lorsque l'écran.
c'est la meilleure chose que je peux penser de: http://jsfiddle.net/faVLX/
plein écran: http://jsfiddle.net/faVLX/embedded/result/
Modifier voir les commentaires ci-dessous:
Cela ne fonctionne pas sur tout l'écran tactile de l'appareil, car il n'y a pas de vol stationnaire, de sorte que l'utilisateur ne verra pas le contenu, à moins qu'ils le robinet. Riche En Bradshaw
Ok j'ai réussi à réaliser une animation lors du chargement de la page en utilisant uniquement les transitions css (un peu!):
J'ai créé 2 feuilles de style css:
la première est de savoir comment je veux le code html de style avant de l'animation...
et la deuxième est comment je veux que la page pour s'occuper de l'animation a été réalisée.
Je ne comprends pas tout ce que j'ai accompli cela, mais il ne fonctionne que lorsque les deux fichiers css (à la fois dans la tête de mon document) sont séparés par un peu de javascript comme suit.
J'ai testé avec Firefox, safari et opera. Parfois, l'animation fonctionne, parfois, il saute directement à la deuxième fichier css et parfois, la page semble être le chargement mais rien ne s'affiche (c'est peut-être juste moi?)
Voici un lien vers mon travail en cours, site web: http://www.hankins-design.co.uk/beta2/test/index.html
Peut-être que je me trompe, mais je pensais que les navigateurs qui ne prennent pas en charge les transitions css ne devriez pas avoir des problèmes à mesure qu'ils devraient passer directement à la deuxième fichier css sans délai ou la durée.
Je suis intéressé à connaître les opinions sur la façon de moteur de recherche convivial de cette méthode est. Avec mon chapeau noir sur je suppose que je pourrais remplir une page avec des mots clés et appliquer une 9999s de retard sur son opacité.
Je serais intéressé de savoir comment les moteurs de recherche traitent de la transition-delay attribut et si, à l'aide de la méthode ci-dessus, ils se seraient même voir les liens et les informations sur la page.
Plus important, je voudrais vraiment savoir pourquoi ce n'est pas la même à chaque fois que le chargement de la page et comment je peux remédier à cela!
J'espère que cela peut générer des points de vue et opinions dans la mesure où rien d'autre!
Si quelqu'un d'autre a eu des problèmes à faire des transitions à la fois, voici ce que j'ai fait. J'avais besoin de texte à venir de haut en bas sur le chargement de la page.
HTML
HTML
CSS
Ne sais pas pourquoi j'ai continué à essayer d'utiliser 2 transition déclarations en 1 sélecteur et (pas vraiment) pensant qu'il allait utiliser les deux.
CSS avec un retard de 3
quelques points à prendre ici:
Code:
Pas vraiment, comme CSS est appliqué dès que possible, mais les éléments pourraient ne pas être encore dessinés. Vous pouvez deviner un délai de 1 ou 2 secondes, mais ce ne sera pas regarder à droite pour la plupart des gens, en fonction de la vitesse de leur connexion internet.
En outre, si vous voulez quelque chose de fade par exemple, il faudrait CSS qui cache la livraison de contenu. Si l'utilisateur n'a pas de transitions CSS3 alors qu'ils n'auraient jamais le voir.
Je vous recommande d'utiliser jQuery (pour la facilité d'utilisation +, vous pouvez ajouter des animations pour d'autres Samu) et certains JS comme ceci:
Avec les transitions ajoutées dans le CSS. Ceci a l'avantage de permettre l'utilisation d'animer la place de la deuxième CSS dans les navigateurs existants si nécessaire.
#id_to_fade in
, si je suis d'accord, ça n'est pas clair à partir de la réponse.#id_to_fade_in { -webkit-transition:opacity 0.5s ease-in-out; }
+-o-
,-moz-
préfixes ainsi.