J'ai vu ce type d'animation sur un site Web juste au moment où les images-clés CSS3 ont commencé à prendre de l'ampleur, mais je n'ai pas pu le trouver ni le reproduire en utilisant CSS ou jQuery, et voici où j'ai pensé que certains d'entre vous pourraient aider.
J'ai animé ce que j'espère réaliser et je l'ai intégré ci-dessous. Je crois que cela peut être codé en utilisant les nouvelles images clés CSS3 ou .animate () de jQuery; fonctionnalité. Je ne sais pas. J'ai essayé tout ce que je sais, mais en vain.
Voici l'animation GIF de ce que je voulais:
Je viens de remarquer, http://droplr.com/ utilise une transition très similaire sur leur page d'accueil, mais avec quelques effets coulissants. Et les données (mots) qui apparaissent sont toutes aléatoires, tout le temps. J'aimerais savoir comment c'est possible!
Je sais que cette question est résolue, mais j'ai pensé que cela pourrait être utile pour quelqu'un d'autre, alors j'ai décidé de partager xD
Je cherchais quelque chose de plus doux que la suggestion qui a été présentée ici, après avoir passé un peu de temps à chercher, j'ai fait ma propre solution
Ici, nous devrons penser un peu en termes de chronologie d'une image clé, dans ce cas, le texte ne sera affiché que lorsque l'autre a déjà terminé son animation de fondu
div{
posititon: relative;
}
.js-nametag{
position: absolute;
}
.js-nametag:nth-child(1){
animation-name: fade;
animation-fill-mode: both;
animation-iteration-count: infinite;
animation-duration: 5s;
animation-direction: alternate-reverse;
}
.js-nametag:nth-child(2){
animation-name: fade;
animation-fill-mode: both;
animation-iteration-count: infinite;
animation-duration: 5s;
animation-direction: alternate;
}
@keyframes fade{
0%,50% {
opacity: 0;
}
100%{
opacity: 1;
}
}
<p class="js-nametag">Leandro de Lima</p>
<p class="js-nametag">Game Master</p>
Une solution possible avec du CSS pur!
@-webkit-keyframes fade-in{
from{
opacity:1;
top:0px;
}
to{
opacity:0;
top:-5px;
}
}
.text-animated-one{
display:inline;
position:relative;
top:0px;
-webkit-animation:fade-in 1s infinite;
}
.text-animated-two{
opacity:0;
display:inline;
position:relative;
margin-left:-56px;
-webkit-animation:fade-in 1s infinite;
-webkit-animation-delay:0.5s;
}
.aggettivi{
display:inline;
width:100px;
height:100px;
}
Quelques recherches et expérimentations approfondies sur Google m'ont amené au point où je peux répondre à ma propre question, et juste à temps aussi!
Si l'un d'entre vous souhaite savoir comment cela peut être fait, consultez cet extrait de CodePen que j'ai écrit: http://codepen.io/AmruthPillai/pen/axvqB
Quelque chose comme ça:
[~ # ~] html [~ # ~]
<p>I am <span>Something</span><span class="hidden">Test22222</span></p>
[~ # ~] css [~ # ~]
.hidden {display:none;}
span { position: absolute; left:45px; top:10px;}
p {width:200px; border:1px solid #000; padding:10px; position:relative;}
jQuery
$(document).ready(function() {
// run the fade() function every 2 seconds
setInterval(function(){
fade();
},2000);
// toggle between fadeIn and fadeOut with 0.3s fade duration.
function fade(){
$("span").fadeToggle(300);
}
});
Remarque : cela ne fonctionne qu'avec le basculement de 2 mots, il pourrait être préférable d'avoir un tableau de mots et d'écrire une fonction pour les parcourir et les appliquer l'animation `fadeIn/fadeOut.
Edit : Voici une solution pour plusieurs mots - https://stackoverflow.com/a/2772278/2470724 il utilise un array
pour stocker chaque mot, puis les parcourir.
Edit 2 : Solution non matricielle: http://jsfiddle.net/kMBMp/ Cette version passe en boucle à travers un un-ordered list
qui a display:none
dessus
L'approche la plus faible est probablement d'utiliser le plug-in Morphext jQuery:
https://github.com/MrSaints/Morphext
Il est alimenté par animate.css, il est donc facile de changer le style d'animation du texte.
Si vous recherchez quelque chose d'un peu plus puissant (peut spécifier des animations ET et non animer uniquement du texte), il existe un spin-off appelé Morphist: