Además de las funciones de cambio de tamaño de ventana mencionadas, es importante comprender que los eventos de cambio de tamaño se disparan mucho si se usan sin desestimar los eventos.
Paul Irish tiene una excelente función que elimina mucho las llamadas de cambio de tamaño. Muy recomendado para usar. Funciona entre navegadores. Lo probé en IE8 el otro día y todo estuvo bien.
http://www.paulirish.com/2009/throttled-smartresize-jquery-event-handler/
Asegúrese de revisar la demostración para ver la diferencia.
Aquí está la función para completar.
(function($,sr){
// debouncing function from John Hann
// http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
var debounce = function (func, threshold, execAsap) {
var timeout;
return function debounced () {
var obj = this, args = arguments;
function delayed () {
if (!execAsap)
func.apply(obj, args);
timeout = null;
};
if (timeout)
clearTimeout(timeout);
else if (execAsap)
func.apply(obj, args);
timeout = setTimeout(delayed, threshold || 100);
};
}
// smartresize
jQuery.fn[sr] = function(fn){ return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };
})(jQuery,'smartresize');
// usage:
$(window).smartresize(function(){
// code that takes it easy...
});