2013-01-22 150 views
1

比方說,我有一個部分,它的寬度是1181(在控制檯輸出)和我使用下面的代碼,找出它的寬度:當窗口調整大小時獲取div的實時寬度?

jQuery(document).ready(function() 
{ 
    var body_size = jQuery('section').width(); 
    console.log(body_size); 
}); 

如果我重新大小我的瀏覽器,我必須重新加載頁面才能找到這個div的新大小。

有沒有辦法在我重新調整瀏覽器大小時找出大小?

+2

查看'resize'事件 - http://api.jquery.com/resize/ – mrtsherman

+1

'$(window).resize(fn)'.. –

回答

7

您可以處理「調整大小」事件。需要警告的是,事件經常被觸發非常,所以最好不要在處理程序中執行任何DOM操作,或儘可能少。處理這個問題的方法之一是使用計時器:

var resizeTimer; 
$(window).resize(function() { 
    clearTimeout(resizeTimer); 
    resizeTimer = setTimeout(function() { 
    var body_size = $('section').width(); 
    // ... 
    // do your work here 
    // ... 
    }, 200); 
}); 

,設置了一個定時器,這樣你實際上並不會做任何工作,直到至少200毫秒用戶停止調整大小後(或會暫停位)。

+0

完美,謝謝。 –

+0

一個簡單的問題。我將如何去刪除以前的大小,只顯示新的大小? –

+0

@KeithDonegan,這取決於你如何「顯示」大小。你正在更新頁面上的某個元素嗎?如果你的意思是在控制檯中,你不能;沒有控制檯API可以返回並更改已經記錄的內容。 – Pointy

相關問題