Se siete OK con la conversione del GIF a un foglio sprite, si può fare in questo modo (usando ImageMagick):
montage animation.gif -coalesce -tile x1 -geometry +0+0 -background None -quality 100 spritesheet.png
E 'anche probabile che la nuova immagine sarà di dimensioni inferiori.
Una volta che hai un foglio sprite, usa l'animazione CSS. Un'animazione con un tempo di telaio fisso è qui utilizzato:
var el = document.getElementById('anim');
function play() {
el.style.animationPlayState = 'running';
}
function pause() {
el.style.animationPlayState = 'paused';
}
function reset() {
el.style.animation = 'none';
el.offsetHeight; /* trigger reflow to apply the change immediately */
el.style.animation = null;
}
function stop() {
reset();
pause();
}
#anim {
background-image: url('https://i.stack.imgur.com/J5drY.png');
width: 250px;
height: 188px;
animation: anim 1.0s steps(10) infinite;
}
@keyframes anim {
100% { background-position: -2500px; }
}
<div id="anim" title="Animated Bat by Calciumtrice"></div>
<button onclick="play()">Play</button>
<button onclick="pause()">Pause</button>
<button onclick="reset()">Reset</button>
<button onclick="stop()">Stop</button>
Se si desidera che l'animazione non inizia automaticamente, aggiungere paused
alla fine del animation
regola.
Puoi anche farlo con una grande immagine con sprite e mostrare solo sprite esatte ritagliando l'immagine – MBO
D'accordo con @MBO, con gli sprite è abbastanza semplice, controlla questa domanda correlata: http://stackoverflow.com/questions/1736922/how-to-show-animated-image-from-png-image-using-javascript-like-gmail – CMS
Usa video senza audio. proprio come 9gag – atilkan