Mặc dù đã có một vài của các câu trả lời với các giải pháp làm việc, loại nhiệm vụ này là hiệu năng quan trọng (sự kiện thay đổi kích thước cửa sổ được kích hoạt nhiều lần trong khi người dùng đang thay đổi kích thước cửa sổ) vì vậy tôi đề nghị bạn chăm sóc rformance. Xin vui lòng, có một cái nhìn vào mã tối ưu hóa dưới đây:
/* Do not waste time by creating jQuery object from window multiple times.
* Do it just once and store it in a variable. */
var $window = $(window);
var lastWindowWidth = $window.width();
$window.resize(function() {
/* Do not calculate the new window width twice.
* Do it just once and store it in a variable. */
var windowWidth = $window.width();
/* Use !== operator instead of !=. */
if (lastWindowWidth !== windowWidth) {
// EXECUTE YOUR CODE HERE
lastWindowWidth = windowWidth;
}
});
Thêm vào đó, bạn có thể quan tâm kiểm tra Debounce/Throttle mẫu - họ cải thiện hiệu suất vô cùng trong những trường hợp như thế này.
điều này thật tuyệt ... –
Có cách nào chỉ hoạt động khi chiều rộng đã thay đổi VÀ khi giá trị pixel nhỏ hơn? Ví dụ. nếu ($ (cửa sổ) .width() <500) kết hợp với các bên trên? – Dan382
Mã trên hoạt động, nhưng hiệu suất của nó là tối ưu. Đối tượng cửa sổ jQuery được tạo nhiều lần mặc dù nó có thể được thực hiện chỉ một lần. Ngoài ra chiều rộng mới của cửa sổ được tính toán vô nghĩa nhiều lần. – Anton