Si estás bien con la conversión de su gif a una hoja de sprites, puede hacerlo de esta manera (usando ImageMagick):
montage animation.gif -coalesce -tile x1 -geometry +0+0 -background None -quality 100 spritesheet.png
Incluso es probable que la nueva imagen será de menor tamaño.
Una vez que tenga una hoja de sprite, use animación CSS. Una animación con un tiempo de marco fijo se utiliza aquí:
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>
Si desea que la animación se inicia automáticamente, añadir paused
hasta el final de animation
regla.
También puede hacerlo con una imagen grande con sprites y solo mostrar el sprite exacto al cliquear la imagen – MBO
De acuerdo con @MBO, con sprites es bastante simple, consulte esta pregunta relacionada: http://stackoverflow.com/questions/1736922/how-to-show-animated-image-from-png-image-using-javascript-like-gmail – CMS
Usa el video sin sonido. al igual que 9gag – atilkan