Bạn chỉ có thể chạy chúng trong một hàng, như thế này:
$("#trigger").hover(function() {
$("#box1").stop().animate({ backgroundColor: '#000000' });
$("#box2").stop().animate({ top: "-20px" });
}, function() {
$("#box1").stop().animate({ backgroundColor: '#FFFFFF' }); //set it back
$("#box2").stop().animate({ top: "0px" }); //set it back
});
này sử dụng .hover()
animate đối phương khi lơ lửng, và animate họ lại khi rời khỏi. Các .stop()
chỉ là để ngăn chặn hàng đợi hoạt hình xây dựng. Để tạo hiệu ứng cho một màu, bạn cũng cần có cả the color plugin hoặc jQuery UI.
Animations trong jquery, .animate()
, are implemented sử dụng setInterval()
với một bộ đếm thời gian 13ms, do đó họ sẽ xảy ra bên ngoài dòng chảy bình thường ... làm cho họ như trên không chờ đợi là người đầu tiên kết thúc, họ sẽ chạy cùng một lúc.
Nguồn
2010-09-04 13:04:28
và cách tôi có thể tạo ảnh động từng cái một? (không đồng thời) – Mehran
@Mehran - Cách * an toàn nhất * là xếp hàng chính mình, như thế này: http://jsfiddle.net/nick_craver/Cz62t/ –
@NickCraver jQuery có sử dụng bộ hẹn giờ * cùng * cho hoạt ảnh đang chạy trong cùng một không thời gian? Hoặc nó có lịch trình các bộ hẹn giờ khác nhau với các cuộc gọi setInterval riêng biệt cho mỗi đối tượng để tạo hiệu ứng động không? –