2012-03-31 28 views
2

如何編寫檢測和緩存功能開始和window.width結束調整jQuery的,寫一個函數來獲取新的和舊window.width

寬度在該.resize( funciton {})會在調整大小時立即更改,但我會在每次調整大小時在新舊大小之間發生差異。

更新---

我需要趕上diffeence,這樣我可以做一個寬度:「+ =差異」的元素

+0

得到一個小的jQuery插件那裏會做你所需要的。 – 2012-03-31 03:08:58

回答

1

此版本將更新後的500毫秒的最後一個窗口大小( demo)。是的,一些瀏覽器只有在調整大小停止後才更新窗口寬度,其他瀏覽器則會在您拖動窗口時主動更新。

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

謝謝,但超時的事情是錯誤的,但我想它只用超時方法。所以對我來說最好的選擇實際上是編寫一個銷燬函數並在窗口大小上重建。 – devric 2012-03-31 05:04:06