Theo jQuery, điều này là bởi vì, như đã nêu trên trang animate
tài liệu:
Tất cả các đặc tính hoạt hình phải là một đơn giá trị số (trừ như đã nêu dưới đây); tài sản mà là không phải số không thể được hoạt hình sử dụng chức năng jQuery cơ bản ....
Vì vậy, trên thực tế, trong Firefox bạn đang sử dụng hành vi không xác định. Điều chính xác cần làm là animate trên backgroundPositionX, tuy nhiên Firefox không hỗ trợ điều này.
Có, tuy nhiên, một plugin jQuery mà những gì bạn muốn:
http://plugins.jquery.com/project/backgroundPosition-Effect
Cập nhật
On kiểm tra chặt chẽ hơn, các plugin không hỗ trợ +=
hoặc -=
định dạng.
tôi bị hack nó vào ví dụ này:
http://jsfiddle.net/CxqSs/
(Xem ví dụ mới ở phía dưới.)
chắc chắn có thể sử dụng một số ngẫu nhiên, và có lẽ nên được bổ sung cho trình cắm đó, nhưng nó hoạt động trong cả hai trình duyệt và không dựa vào hành vi không xác định.
BTW, tôi không biết liệu nó có đáng chú ý hay không, nhưng nếu bạn để hoạt ảnh này chạy trong một thời gian dài, nó cuối cùng sẽ làm hỏng giá trị và ngắt. Điều này có thể được khắc phục bằng cách làm động toàn bộ chiều dài của ảnh nền và sau đó đặt lại độ lệch thành 0px trong cuộc gọi lại trước animate tiếp theo. Điều này cũng sẽ tránh cần định dạng +=
.
Cũng,
Cần lưu ý rằng speed: 1, step: 1
và speed: 50, step: 50
là tương đương.
Lý do họ nhìn tốc độ khác nhau là vì
- Có overhead hơn ở tốc độ 1 (mà thực sự là một khoảng thời gian một phần nghìn giây) vì Animate được gọi thường xuyên hơn.
Việc nới lỏng mặc định là "xoay", có nghĩa là hoạt ảnh tăng tốc và làm chậm một chút trong suốt khóa học, có nghĩa là tốc độ tổng thể bị ảnh hưởng một chút. Bạn nên thay đổi nới lỏng để "tuyến tính" đối với trường hợp di chuyển của bạn:
var animate = function() {
element.animate({
...
}, speed, "linear", animate);
};
Điều này có nghĩa mà bạn có thể sử dụng plugin backgroundPosition-Hiệu lực thi hành, nếu không có sự '+ =', bằng cách thiết lập bước của bạn để 2247 (chiều rộng của hình ảnh), như tôi đã nói ở trên.
Và đó cuối cùng đưa chúng ta đến ... chờ cho nó ...
http://jsfiddle.net/zyQj3/20/
Cross-nền tảng, không kludgy, không tràn, giảm bớt một cách chính xác, thêm tham số thiếu, dung dịch.
Làm thế nào về: http: // stackoverflow .com/questions/710756/ie8-var-w-cửa sổ-mở-tin-không hợp lệ-đối số – JakeParis