Покадровая анимация
Обновленная версия скрипта:
/*
* vAnimate - function creates a vertical animation
* [params] offset = height in pixels of one frame
* slides = frame count
* id = id animated element
* [return] return object
* [usage] setInterval(vAnimate(10,2,"anim",1).setOffset, 100));
*/
function vAnimate(offset, slides, id, back) {
var numberOfCalls = 0 - offset;
return function cn(){
if (numberOfCalls == offset * slides) numberOfCalls = 0;
return {offset: numberOfCalls+=offset, id: id, setOffset:function(){
p =cn();
var g = document.getElementById(p.id);
if(back==1){var posX = p.offset}
if(back==0){var posX = -1*p.offset}
var str = '0px ' +posX+'px';
g.style.backgroundPosition=str;
}
}
}
}
var cn = createCounter(35,10,"gear1",1); //1.смещение в пикселях. 2.количество кадров. 3.id дива с анимацией. 4.если 1 то кадры едут вперед, если 0 то в обратную сторону.
setInterval(cn().setOffset,50); //частота обновления