Để chuyển đổi, bạn có thể sử dụng cách sau để phát hiện kết thúc chuyển đổi qua jQuery:
$("#someSelector").bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });
Mozilla có một tài liệu tham khảo tuyệt vời:
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions#Detecting_the_start_and_completion_of_a_transition
Đối với hình ảnh động, nó rất giống nhau:
$("#someSelector").bind("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });
Lưu ý rằng bạn có thể chuyển đồng thời tất cả các chuỗi sự kiện có tiền tố trình duyệt vào phương thức bind () để hỗ trợ sự kiện bắn vào tất cả các trình duyệt hỗ trợ nó.
Cập nhật:
Theo nhận xét mà Duck để lại: bạn sử dụng .one()
phương thức của jQuery để đảm bảo trình xử lý chỉ kích hoạt một lần. Ví dụ:
$("#someSelector").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });
$("#someSelector").one("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });
Cập nhật 2:
bind()
Phương thức jQuery không được dùng nữa và on()
phương thức này được ưa thích hơn jQuery 1.7
.bind()
Bạn cũng có thể sử dụng off()
phương thức trên chức năng gọi lại để đảm bảo nó sẽ chỉ được kích hoạt một lần. Đây là một ví dụ tương đương với việc sử dụng one()
phương thức:
$("#someSelector")
.on("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd",
function(e){
// do something here
$(this).off(e);
});
Người giới thiệu: