Według jQuery jest, ponieważ, jak podano na stronie animate
dokumentacja:
Wszystkie animowane właściwości powinny być pojedynczą wartość liczbowa (z zaznaczonymi wyjątkami poniżej); właściwości, które są nienumeryczny nie mogą być animowane za pomocą podstawową funkcjonalność jQuery ....
Tak więc, w rzeczywistości, w Firefoksie używasz niezdefiniowanej zachowanie. Prawidłowe będzie animowanie w backgroundPositionX, jednak Firefox tego nie obsługuje.
Istnieje jednak plugin jQuery, że robi to, co chcesz:
http://plugins.jquery.com/project/backgroundPosition-Effect
Aktualizacja
Przy bliższym zbadaniu, wtyczka nie obsługuje +=
lub -=
formaty.
I hacked go w tym przykładzie:
http://jsfiddle.net/CxqSs/
(Zobacz nowy przykład na dole).
pewno można użyć trochę porządki, a prawdopodobnie powinien być dodany do tej wtyczki, ale działa w obu przeglądarkach i nie polega na niezdefiniowanym zachowaniu.
BTW, nie wiem, czy warto o tym pamiętać, ale jeśli pozostawisz tę animację przez dłuższy czas, ostatecznie przepełni ona wartość i pęknie. Można temu zaradzić, animując całą długość obrazu tła, a następnie resetując przesunięcie do 0 pikseli w wywołaniu zwrotnym przed następnym animowaniem. Unikałoby to również potrzeby formatu +=
.
także,
Należy zauważyć, że speed: 1, step: 1
i speed: 50, step: 50
są równoważne.
Powodem wyglądają różne prędkości dlatego
- Istnieje więcej napowietrznej w prędkości 1 (który jest naprawdę czas milisekundy), ponieważ ożywione jest wywoływana częściej.
Domyślnym poluzowaniem jest "swing", co oznacza, że animacja przyspiesza i spowalnia nieznacznie podczas jej trwania, co oznacza, że ogólna prędkość jest nieco zmieniona. należy zmienić łagodzenie do „liniowy” w Twoim przypadku przewijania:
var animate = function() {
element.animate({
...
}, speed, "linear", animate);
};
Oznacza to, że można użyć wtyczki backgroundPosition-efekt, bez „+ =”, ustawiając swój krok do 2247 (szerokość obrazu), jak wskazałem powyżej.
I wreszcie przenosi nas do ... czekać na to ...
http://jsfiddle.net/zyQj3/20/
cross-platform, non-kludgy, nie przepełnione, poprawnie złagodzenie, dodatkowy parametr-brakuje, rozwiązanie.
Jak o: http: // stackoverflow .com/questions/710756/ie8-var-w-window-open-message-invalid-argument – JakeParis