Bạn có thể sử dụng .resize()
để có được mỗi khi chiều rộng / chiều cao thực sự thay đổi, như thế này:
$(window).resize(function() {
//resize just happened, pixels changed
});
Bạn có thể xem một bản demo hoạt động ở đây , nó lấy các giá trị chiều cao / chiều rộng mới và cập nhật chúng trong trang để bạn xem. Hãy nhớ rằng sự kiện không thực sự bắt đầu hay kết thúc , nó chỉ "xảy ra" khi thay đổi kích thước xảy ra ... không có gì để nói một sự kiện khác sẽ không xảy ra.
Chỉnh sửa: Theo nhận xét, có vẻ như bạn muốn một cái gì đó giống như một sự kiện "kết thúc", giải pháp bạn tìm thấy thực hiện điều này, với một vài ngoại lệ (bạn không thể phân biệt giữa chuột lên và tạm dừng theo cách đa trình duyệt, tương tự cho một kết thúc so với tạm dừng ). Bạn có thể tạo sự kiện đó, để làm cho nó sạch hơn một chút, như thế này:
$(window).resize(function() {
if(this.resizeTO) clearTimeout(this.resizeTO);
this.resizeTO = setTimeout(function() {
$(this).trigger('resizeEnd');
}, 500);
});
Bạn có thể có đây là một tệp cơ sở ở đâu đó, bất cứ điều gì bạn muốn làm ... sau đó bạn có thể liên kết với resizeEnd
sự kiện mới mà bạn đang kích hoạt, như thế này:
$(window).bind('resizeEnd', function() {
//do something, window hasn't changed size in 500ms
});
Bạn có thể thấy một bản demo làm việc của phương pháp này ở đây