Только что увидел ответ ОП, но решил все равно написать:
Я создал плагин jQuery для этого:
(function($) {
$.fn.scrollingBackground = function(options) {
// settings and defaults.
var settings = options || {};
var speed = settings.speed || 1;
var step = settings.step || 1;
var direction = settings.direction || 'rtl';
var animStep;
// build up a string to pass to animate:
if (direction === 'rtl') {
animStep = "-=" + step + "px";
}
else if (direction === 'ltr') {
animStep = '+=' + step + "px";
}
var element = this;
// perform the animation forever:
var animate = function() {
element.animate({
backgroundPosition: animStep + " 0px"
}, speed, animate);
};
animate();
};
})(jQuery);
Использование:
$("#header").scrollingBackground({
speed: 50,
step: 50,
direction: 'ltr'
});
Это довольно просто, и предполагается, что вы повторяете фоновое значение: repeat-x для элемента, для которого вы его вызываете.Таким образом, нет необходимости периодически сбрасывать положение фона.
Рабочий пример: http://jsfiddle.net/andrewwhitaker/xmtpr/