2013-01-22 112 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

相关问题