Comment puis-je créer un effet de texte défilant?
Je suis de créer un effet de texte défilant avec CSS3 animation.
CSS:
#caption {
position: fixed;
bottom: 0;
left: 0;
font-size: 20px;
line-height: 30px;
height:30px;
width: 100%;
white-space: nowrap;
-moz-animation: caption 50s linear 0s infinite;
-webkit-animation: caption 50s linear 0s infinite;
}
@-moz-keyframes caption {
0% { margin-left:120%; } 100% { margin-left:-4200px; }
}
@-webkit-keyframes caption {
0% { margin-left:120%; } 100% { margin-left:-4200px; }
}
HTML:
<div id="caption">
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. the quick brown fox jumps over the lazy dog.
</div>
Je peux maintenant la base de marquise effet, mais le code est trop spécifique pour cette démo.
Est-il un moyen d'éviter d'utiliser des valeurs spécifiques comme margin-left:-4200px;
, afin qu'il puisse adapter le texte dans n'importe quelle longueur?
Voici une semblable démonstration: http://jsfiddle.net/jonathansampson/XxUXD/ qui utilise text-indent
mais toujours avec des valeurs spécifiques.
Vous devez vous connecter pour publier un commentaire.
Avec une petite modification du balisage, voici mon approche (j'ai juste inséré un
span
à l'intérieur du paragraphe):CSS:
HTML:
JSFiddle Démo
(frontières inclus uniquement pour des fins de débogage, testé sur Firefox et Chrome)
Pas de valeurs codées en dur — dépendante sur le paragraphe de largeur ont été insérés
L'animation s'applique le CSS3
transform
propriété (utiliser des préfixes si nécessaire) de sorte qu'il fonctionne bien.Si vous avez besoin d'insérer un délai juste une fois au début et ensuite également définir une
animation-delay
. Si vous avez besoin de place pour insérer un petit retard à l' chaque boucle puis essayer de jouer avec un supérieurpadding-left
(par exemple150%
).marquee span { animation-delay: -7.5s; }
linear
) ou: Lors de l'utilisation de text-indent: -100% le texte s'arrête à ~50%. Vous pourriez avoir le css de la balise:text-align: center
sur. Il provoque des choses bizarres à se produire. Je voulais juste rajouter ici au cas où quelqu'un a eu des problèmes que j'avais.Basée sur la réponse précédente, principalement @fcalderan, cette tente défile lors de son survol, avec l'avantage que l'animation des parchemins complètement, même si le texte est plus court que l'espace à l'intérieur de ça défile, également toute la longueur de texte prend la même quantité de temps (cela peut être un pros ou les inconvénients) lorsqu'il n'est pas plané le texte de retour à la position initiale.
Pas de valeur codée en dur autre que le défilement du temps, le mieux adapté pour les petits de défilement des espaces
CSS:
HTML:
Les réponses acceptées animation ne fonctionne pas sur Safari, je l'ai mis à jour à l'aide de traduire au lieu de padding-left qui rend pour une plus lisse, à l'épreuve des balles d'animation.
Aussi, les réponses acceptées démo de violon a beaucoup d'inutiles styles.
J'ai donc créé une version simple, si vous voulez juste de couper et de coller le code utile, et ne pas passer 5 minutes de compensation par le biais de la démo.
http://jsfiddle.net/e8ws12pt/
CSS:
HTML:
Les éléments suivants doivent faire ce que vous voulez.