Если вы просто хотите, чтобы он анимировался таким образом, чтобы он перемещался на loadingHeight
пикселей каждые 50 миллисекунд в общей сложности на 31 loadingHeights, а затем повторяется обратно в исходное положение, то вы можете сделать это за один анимационный вызовзатем повторите этот единственный вызов, как это:
(function animateImage(steps) {
$(loadingDiv).css('backgroundPosition', '0 0');
$(loadingDiv).animate(
{ backgroundPosition: '0 -' + (loadingHeight * steps) + 'px' },
{ duration: 50 * steps, complete: function() { animateImage(steps); } }
);
})(31);
Общий способ сделать бесконечный или неопределенный цикл в javascript - это определить функцию, которая вызывает себя немедленно, а затем периодически, как это:
(function someName() {
// do some stuff
// then after some delay (setTimeout or animate delay, etc...), call:
someName();
})();