Sì, lo si può fare con animazioni CSS3 (check browser support here).
Ecco un semplice demo for text-fading.
HTML:
<div class="text">
There is some text here!
<div class="fadingEffect"></div>
</div>
CSS:
.text {
position:relative;
line-height:2em;
overflow:hidden;
}
.fadingEffect {
position:absolute;
top:0; bottom:0; right:0;
width:100%;
background:white;
-moz-animation: showHide 5s ease-in alternate infinite; /* Firefox */
-webkit-animation: showHide 5s ease-in alternate infinite; /* Safari and Chrome */
-ms-animation: showHide 5s ease-in alternate infinite; /* IE10 */
-o-animation: showHide 5s ease-in alternate infinite; /* Opera */
animation: showHide 5s ease-in alternate infinite;
}
@-webkit-keyframes showHide { /* Chrome, Safari */
0% {width:100%}
40% {width:0%}
60% {width:0%;}
100% {width:100%;}
}
@-moz-keyframes showHide { /* FF */
0% {width:100%}
40% {width:0%}
60% {width:0%;}
100% {width:100%;}
}
@-ms-keyframes showHide { /* IE10 */
0% {width:100%}
40% {width:0%}
60% {width:0%;}
100% {width:100%;}
}
@-o-keyframes showHide { /* Opera */
0% {width:100%}
40% {width:0%}
60% {width:0%;}
100% {width:100%;}
}
@keyframes showHide {
0% {width:100%}
40% {width:0%}
60% {width:0%;}
100% {width:100%;}
}
Come potete vedere, c'è un netto contrasto sui bordi. Se usi una sfumatura di immagine invece di uno sfondo bianco puro, renderà il rendering migliore.
Quindi, è possibile utilizzare un fallback jQuery per IE9 e versioni precedenti.
È possibile utilizzare un livello aggiuntivo contenente una sfumatura (da bianco a trasparente) e spostare tale livello orizzontalmente per ottenere l'effetto desiderato. – feeela
@feeela Questo è quello che pensavo potesse funzionare meglio, ma non ero sicuro di come ottenere l'effetto sopra, dato che lo strato tornerebbe indietro invece di continuare a muoversi nella stessa direzione. – Bobe
Posiziona un livello sopra il testo e anima una sfumatura? Questo potrebbe funzionare, tuttavia è passato molto tempo da quando ho usato i gradienti CSS3. – Zeta