你也可以嘗試其他方法。
首先創建一個方法來獲得有效的斷點(手機,平板電腦,臺式機,臺式機大),即Breakpoint.getActive()
然後使用數組保存在縮放記錄的最後兩個狀態。
示例代碼:
var beforeAfterResize = [];
$(window).resize(function() {
var resizeInfo = Breakpoint.getActive();
if (beforeAfterResize.length > 1) {
beforeAfterResize[0] = beforeAfterResize[1];
beforeAfterResize[1] = resizeInfo;
} else {
beforeAfterResize.push(resizeInfo);
}
console.log(beforeAfterResize);
});
稱爲beforeAfterResize將只存儲在位置0的兩個值並1.如果有2倍以上的值的陣列,然後是位置0取入的位置1和1位的值,最新值,將保留當前的斷點信息。
這樣你就可以在沒有超時事件的情況下進行比較前/後比較。
調整大小後,您將能夠比較beforeAfterResize [0]和beforeAfterResize [1]之間的值,如果它們不同,則可以執行一些操作。
示例:比方說,我想知道是否在調整大小後,我從移動設備移動到桌面或大型桌面。然後我會用這樣的東西:
var fromMobile = false;
if (((beforeAfterResize[0] === "mobile") || (beforeAfterResize[0] === "tablet"))
&& ((beforeAfterResize[1] === "desktop") || (beforeAfterResize[1] === "desktop-large"))) {
fromMobile = true;
}
讓我知道這是否適合你。
也許有一個很好的理由爲什麼總是解決方案.... – Barmar
如何在調整大小之前做某些事情,您需要心靈感應技能才能知道用戶何時想調整窗口大小?至於之後,大多數瀏覽器幾乎不斷地觸發resize事件,因此需要超時來查看resize事件何時停止觸發一段時間。 – adeneo
在這種情況下'setTimeout'有什麼問題? –