Además de cambiar el tamaño de la ventana de funciones mencionadas, es importante entender que los eventos de cambio de tamaño mucho fuego si se utiliza sin un deboucing los eventos.
Paul irlandés tiene una excelente función que debounces el cambio de tamaño llama mucho. Muy recomendado para usar Funciona en todos los navegadores Lo probé en IE8 el otro día y todo estaba bien.
http://www.paulirish.com/2009/throttled-smartresize-jquery-event-handler/
Asegúrese de check out the demo para ver la diferencia.
Aquí es la función para la integridad.
(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...
});
También estoy investigando esto. Me gustaría tratar de aplicar las soluciones que se ofrecen aquí, pero me temo que no entiendo la sintaxis: $ (ventana). ¿Eso es algo específico de jQuery? – Byff
Byff, sí, $ (ventana) es una construcción jQuery. window.onresize es el equivalente en JavaScript sin procesar. –
Esta demostración puede ayudar a nadie a probar en todos los navegadores http://jsfiddle.net/subodhghulaxe/bHQV5/2/ –