Вы можете использовать, .resize()чтобы получать каждый раз, когда ширина / высота действительно изменяется, например:
$(window).resize(function() {
//resize just happened, pixels changed
});
Здесь вы можете просмотреть рабочую демонстрацию , она принимает новые значения высоты / ширины и обновляет их на странице, чтобы вы могли их увидеть. Помните, что событие на самом деле не начинается и не заканчивается , оно просто «происходит», когда происходит изменение размера ... нечего сказать, что другого не произойдет.
Изменить: по комментариям кажется, что вам нужно что-то вроде «непрерывного» события, решение, которое вы нашли, делает это, с несколькими исключениями (вы не можете различить наведение мыши и паузу в кросс-браузере, то же самое для конца vs пауза ). Вы можете создать это событие, чтобы сделать его немного чище, например:
$(window).resize(function() {
if(this.resizeTO) clearTimeout(this.resizeTO);
this.resizeTO = setTimeout(function() {
$(this).trigger('resizeEnd');
}, 500);
});
У вас может быть где-то это базовый файл, что бы вы ни делали ... тогда вы можете привязаться к этому новому resizeEndсобытию, которое запускаете, например:
$(window).bind('resizeEnd', function() {
//do something, window hasn't changed size in 500ms
});
Вы можете увидеть рабочую демонстрацию этого подхода здесь