2012-03-31 4 views
2

Wie schreibe ich eine Funktion, die den Beginn und das Ende eines window.width erkennt und speichert die Größejquery, schreiben Sie eine Funktion sowohl neue als auch alte window.width zu bekommen

die Breite in der .resize (Funktion {}) ändert sich sofort bei der Größenanpassung, aber ich bin nach den Unterschieden zwischen der alten und neuen Größe jedes Mal, wenn es die Größe ändert.

Update ---

Ich brauche die diffeence zu fangen, so dass ich eine Breite tun können: '+ = diff' auf ein Element

+0

Wir müssen ein kleines jQuery-Plugin da draußen sein, das tun wird, was Sie brauchen. –

Antwort

1

Diese Version wird die letzte Fenstergröße nach 500 Millisekunden aktualisiert werden (demo). Und ja, einige Browser aktualisieren die Fensterbreite erst, nachdem die Größenänderung gestoppt wurde, andere werden aktiv aktualisiert, während Sie das Fenster ziehen.

var throttle, 
    win = $(window), 
    cur_width = win.width(), 
    old_width = cur_width, 
    diff = 0; 

win.resize(function() { 
    clearTimeout(throttle); 
    cur_width = win.width(); 
    throttle = setTimeout(function() { 
     diff = cur_width - old_width; 
     old_width = cur_width; 
    }, 500); 
}).trigger('resize'); 
+0

Danke, aber die Timeout-Sache ist ziemlich fehlerhaft, aber ich nehme an, dass es nur so mit der Timeout-Methode funktioniert. Also ist die beste Option für mich, eine Zerstörungsfunktion zu schreiben und die Fenstergröße zu ändern. – devric

Verwandte Themen