我有一個事件偵聽器,看起來像:調整窗口大小之前和之後的innerWidth/innerHeight?
window.addEventListener("resize", function(data){
console.log(data);
// Do something
});
反正是有得到調整之前在上面的回調函數innerWidth
/innerHeight
?我通過上面的代碼中的data
對象,並沒有發現任何東西。
我有一個事件偵聽器,看起來像:調整窗口大小之前和之後的innerWidth/innerHeight?
window.addEventListener("resize", function(data){
console.log(data);
// Do something
});
反正是有得到調整之前在上面的回調函數innerWidth
/innerHeight
?我通過上面的代碼中的data
對象,並沒有發現任何東西。
每次瀏覽器調整大小事件發生時,我最終都會保存舊的寬度值。代碼如下:
var initialWidth = window.innerWidth;
window.addEventListener("resize", function(){
// Do something with 'initialWidth'
initialWidth = window.innerWidth;
});
在上面,我保存頁面加載時的瀏覽器寬度。然後,每次瀏覽器調整大小時,我都會在回調函數結束時保存新的瀏覽器寬度。
你不能,你必須存儲以前的高度/寬度在一些變量。只需將它放在頁面加載的變量中,然後就可以用這種方法訪問它。沒有什麼比bofore調整大。 read this
只是添加了一些跟蹤最後resize
事件值:
var windowSize = (function() {
var lastWidth = 0, lastHeight = 0;
window.addEventListener('resize', function (data) {
// do something with last values
...
console.log(lastWidth);
console.log(lastHeight);
...
lastWidth = window.innerWidth;
lastHeight = window.innerHeight;
});
return { width: lastWidth, height: lastHeight };
})();
現在,您可以使用windowSize
對象封外面尋找當前窗口的大小是什麼,以及在內部內關閉你可以在更新lastWidth
和lastHeight
之前根據窗口以前的大小採取行動。
希望這會有所幫助!
'之前'是關鍵詞。請參閱,不同瀏覽器的行爲與'resize'不同。甚至操作系統設置[可能會影響](http://www.quirksmode.org/dom/events/resize.html)的行爲。我想最好的辦法是將先前的值緩存在你自己的腳本中。 – raina77ow
不是我所知道的,但是當頁面加載並將其存儲在一個變量中時,您可以獲取這些信息。 –