Мне нужно было сделать то же самое, что и вы, и приземлился на ваш вопрос.В итоге я нашел информацию о функции шагов, о которой я прочитал из здесь .
JSFiddle моего решения в действии (обратите внимание, что в настоящее время он работает в Firefox, яЯ позволю вам добавить кроссбраузерные строки, пытаясь сохранить решение в чистоте от беспорядка)
Сначала я создал лист спрайта, который имел две рамки .Затем я создал div и поместил его в качестве фона, но мой div - только размер моего спрайта (100px).
<div id="cyclist"></div>
#cyclist {
animation: cyclist 1s infinite steps(2);
display: block;
width: 100px;
height: 100px;
background-image: url('../images/cyclist-test.png');
background-repeat: no-repeat;
background-position: top left;
}
Анимация настроена на 2 шага и весь процесс занимает 1секунда.
@keyframes cyclist {
0% {
background-position: 0 0;
}
100% {
background-position: 0 -202px; //this should be cleaned up, my sprite sheet is 202px by accident, it should be 200px
}
}
Тиаго выше упомянул функцию шагов , но я подумал, что подробнее остановлюсь на ней.Довольно простые и классные вещи.