2011-11-21 28 views

Trả lời

1

Từ API documentation page:

Kể từ jQuery sử dụng một khoảng thời gian toàn cầu, không có hình ảnh động nên chạy hoặc tất cả các hình ảnh động nên ngừng cho sự thay đổi của khách sạn này có hiệu lực.

Lưu ý: jQuery.fx.interval hiện không có hiệu lực trong các trình duyệt hỗ trợ thuộc tính requestAnimationFrame, chẳng hạn như Google Chrome 11. Hành vi này có thể thay đổi trong bản phát hành trong tương lai.

tôi mất từ ​​này mà bạn không thể thiết lập tỷ lệ khung hình cho một animate cuộc gọi cá nhân, trừ khi bạn đã sẵn sàng để không có hình ảnh động cho đến khi ai hoàn thành, và thậm chí sau đó bạn không thể đảm bảo hành vi. Nó có lẽ là tốt nhất để rời khỏi các thiết lập một mình.

+0

Vì vậy, để làm rõ, jQuery sử dụng một cái gì đó như thế này: 'window.setInterval (incrementAllAnimations, jQuery.fx.interval)' do đó, nó chỉ không thể thay đổi nó. –

+0

@NathanMacInnes [Vâng, gần như chính xác.] (Https://github.com/jquery/jquery/blob/master/src/effects.js#L457) – lonesomeday

0

Bạn có thể thay đổi điều này bằng cách sử dụng fx.interval. Như thế này:

jQuery.fx.interval = 100; 

$("input").click(function(){ 
    $("div").toggle(3000); 
}); 

Mặc dù nó nói trong tài liệu đó:

jQuery.fx.interval hiện không có tác dụng trong các trình duyệt có hỗ trợ tài sản requestAnimationFrame, chẳng hạn như Google Chrome 11. Hành vi này là chủ đề để thay đổi trong bản phát hành trong tương lai.

+0

Tôi đã nêu điều đó trong bài đăng của mình. Tôi muốn đặt tốc độ khung hình 'animate'. Câu trả lời này không liên quan đến câu hỏi này. – steveyang

+0

Nhưng nếu bạn thực hiện thay đổi trực tiếp trước khi bạn gọi animate cụ thể, bạn có thể sắp xếp làm điều này. Tôi nghĩ bạn sẽ không may mắn nếu bạn có nhiều hoạt ảnh cùng một lúc. –

Các vấn đề liên quan