¿Cómo esperar el "fin" del evento "cambiar tamaño" y solo entonces realizar una acción?
Entonces actualmente uso algo como:
$(window).resize(function(){resizedw();});
Pero esto se llama muchas veces mientras continúa el proceso de cambio de tamaño. ¿Es posible captar un evento cuando finaliza?
Aceptado
Puedes usar setTimeout()
yclearTimeout()
function resizedw(){
// Haven't resized in 100ms!
}
var doit;
window.onresize = function(){
clearTimeout(doit);
doit = setTimeout(resizedw, 100);
};
Ejemplo de código en jsfiddle .
Tuve suerte con la siguiente recomendación: http://forum.jquery.com/topic/the-resizeend-event
Aquí está el código para que no tengas que buscar en el enlace y la fuente de su publicación:
var rtime;
var timeout = false;
var delta = 200;
$(window).resize(function() {
rtime = new Date();
if (timeout === false) {
timeout = true;
setTimeout(resizeend, delta);
}
});
function resizeend() {
if (new Date() - rtime < delta) {
setTimeout(resizeend, delta);
} else {
timeout = false;
alert('Done resizing');
}
}
¡Gracias sime.vidas por el código!