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
});
You can view a working demo here, phải 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 này không thực sự là bắt đầu hoặc 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 điều khác sẽ không xảy ra.
Edit: By bình luận có vẻ như bạn muốn một cái gì đó giống như một sự kiện "trên-end", giải pháp mà bạn tìm thấy thực hiện điều này, với một vài trường hợp ngoại lệ (bạn không thể phân biệt giữa một con chuột-up và tạm dừng theo cách của trình duyệt chéo, tương tự cho một kết thúc và một số tạm dừng). Bạn có thể tạo trường hợp tuy nhiên, để làm cho nó một chút bụi, 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ó điều này là một tập tin 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 đó mới resizeEnd
trường hợp bạn đang hiển thị, như thế này:
$(window).bind('resizeEnd', function() {
//do something, window hasn't changed size in 500ms
});
You can see a working demo of this approach here
Nguồn
2010-06-08 10:21:34
có một jQuery và phi jQuery giải pháp ở đây: https://github.com/louisremi/jque ry-smartresize – bradt
giải pháp tuyệt vời cho các sự kiện debuff-smartresize debounced! – tetri