2013-05-10 113 views
0

我有一個包含許多字段的窗口,其中一些字段顯示/隱藏視圖中的其他字段或元素。發生這種情況時,我會調用一個函數來調整窗口大小。如何檢測用戶窗口調整大小vs window.resizeTo

該函數基本上獲取身體的寬度和高度,並使用window.resizeTo函數相應地調整窗口的大小。

現在我要求添加一項新功能: 如果用戶手動調整窗口大小,請停止進一步自動調整大小。

我想我可以偵聽resize事件,也許可以檢測到它是由window.resizeTo函數觸發的,以及它何時被用戶觸發。

問題是,我沒有找到一種方法......這可能嗎?

+0

是否有一些首要的原因是你跳過這麼多的箍頂部呈現你的數據?我無法想象這種情況,我不得不根據內容手動調整窗口大小。聽起來像是潛在的用戶體驗風險。 – 2013-05-10 18:58:08

回答

1

還有.resize()。但是,如果窗口被用戶調整大小,我不會看到從瀏覽器獲取本機信息的更改。但是我可以想到一個解決方案,當你的函數調整窗口大小時,你設置了一個標誌,然後在.resize()裏面什麼都不做。但是,如果.resize()被觸發,但您的標誌未設置,則由用戶觸發。

* =在您的調整大小代碼運行後,也會刪除該標誌。

+1

這有效,但你必須小心使用resize事件監聽器,因爲每次調整大小JS會觸發該事件多次。你必須使用一個debounced resize事件監聽器,還有一個我用來解決這個問題的jQuery插件。謝謝! – 2013-05-13 15:57:46

0

你是對的,使用「resize」事件可以檢測用戶何時調整瀏覽器大小。 例如:

document.addEventListener("resize", function(){ 
    alert("resizing!"); 
}, false);