我对我正在研究的有关检测窗口大小调整的网站有疑问。我知道这已经在前面讨论过了,我已经阅读了很多讨论,但却无法让它发挥作用。我只是在学习jquery。
$(function(){
var viewPortWidth = $(window).width();
if (viewPortWidth > 1900)
{
$('#mainbio, #footerlinks').addClass('extraWide')
}
else if (viewPortWidth > 1400)
{
$('#mainbio, #footerlinks').addClass('wide')
}
else if (viewPortWidth > 1000)
{
$('#mainbio, #footerlinks').addClass('standard')
}
else if (viewPortWidth > 700)
{
$('#mainbio, #footerlinks, #twitter, #facebook, #flickr, #lastfm').addClass('narrow')
}
else
{
$('#mainbio, #footerlinks, #twitter, #facebook, #flickr, #lastfm').addClass('extraNarrow')
}
});
这是我到目前为止所做的并且它工作正常,但仅限于初始加载。我想知道是否有人可以帮助我调整它以便它可以动态工作 - 所以我可以看到更改,如果我手动调整我的浏览器,而不刷新?
谢谢!
答案 0 :(得分:7)
您可以使用.resize()
回拨此功能。
e.g。
var detectViewPort = function(){
var viewPortWidth = $(window).width();
if (viewPortWidth > 1900)
//...The rest of your above code.
};
$(function(){
detectViewPort();
});
$(window).resize(function () {
detectViewPort();
});
可能有另一个/更好的方法,但这是我所知道的选项。
答案 1 :(得分:1)
目前,这是一个自调用匿名函数,因此只要页面加载就会立即运行(因此会运行一次)。
要在调整窗口大小时让它运行,您需要在窗口上注册resize事件(完整文档在这里http://api.jquery.com/resize/)。
如果您更新该行:
$(function(){
所以它读取
$(window).resize(function(){
只要调整窗口浏览器的大小,它就会被调用。