2013-09-23 288 views
1

首先請原諒我,如果這是重複的,但我一直在嘗試從其他帖子的解決方案,但沒有一個似乎爲我工作。在窗口調整大小設置最小高度和最小寬度

這就是我想實現:

我想設置最小高度,並與文檔的當前寬度和高度一個div的最小寬度。該事件應該在文檔窗口的每個調整大小時觸發。

這是我到目前爲止已經試過:

$(document).ready(function() { 

function reset_demensions() { 
    doc_height = $(document).height(); 
    doc_width = $(document).width(); 
    $(".flicker-div").css("min-width", doc_width + "px"); 
    $(".flicker-div").css("min-height", doc_height + "px"); 
    alert("From - Function" + doc_width + "x" + doc_height); 

} 

    reset_demensions(); 
    $(window).resize(function() { 
     reset_demensions(); 

    }); 

}); 

我現在面臨的問題:

當窗口加載它顯示我正確的寬度和高度第一次。但是,當我嘗試手動調整窗口大小時,會發現兩個問題:

1>該功能被調用兩次,即警報框 2>文檔的捕獲高度不變。 3>捕獲的文檔寬度保持快速增長,並且值不是垃圾,因爲它對於每次運行都是靜態的。

測試運行OUTPUT:

On Load: 
1349x626 
On Resize: 
1369x3130 
1389x15650 

我相信,我錯過了一些東西在這裏,可能是一件非常愚蠢的。請幫我弄清楚這一點。

+0

我試圖做你的建議。但它仍然顯示相同。此外,警報不是問題。無論什麼值它警告它實際上被設置在div樣式標記。爲什麼它被稱爲兩次...?並請指導我進一步實現這個 –

回答

2

我認爲你的錯誤是你正在捕獲的高度文件 ..而不是窗口。

您正在更改window大小並且期望document大小發生更改。

改變你的代碼來檢查$(window).height()$(window).width()

+0

超時非常感謝它做了訣竅..! –

1

首先,你不需要+「像素」;

刷新後重新加載瀏覽器。它應該工作還是?

幾天前我有同樣的問題,並認識到它是因爲document.width/document.height。

是否有可能計算與window.width/window.height相同?

調整窗口大小的每一步都會調用該函數,但是您可以添加一個超時值,因此只會執行一次。 - > timeout插件http://benalman.com/projects/jquery-dotimeout-plugin/

+0

非常感謝,我將它改爲$(window).width()並且一切正常。現在我的下一個工作是實現超時。你可以請編輯你的答案,並指導我如何做到這一點..? –

+0

很高興聽到:) –

+0

超時實施非常感謝。 –

1

不知道這是否會有所作爲,但不需要將函數定義嵌套在onready函數中。它可能會影響函數/垃圾回收等的範圍?您可以在安裝之前安全地定義函數,因爲在文檔準備就緒之前它不會被調用。也從它的位置取出警報。這樣做會導致很多瀏覽器崩潰,因爲事件觸發的速度很快,當您調整窗口大小時,它會嘗試觸發警報!

您可能也想嘗試使用$(window).width(),因爲當您調整div的大小時,文檔變得越來越大,尤其是如果在某處存在填充/邊距時,可能會解釋累積結果。

相關問題