当window.width被调整执行的功能,但并不是高度

问题描述:

我正在开发一个自适应网站,我有一些标签,从标签更改为手风琴在小屏幕上。这里是我正在做它的那一刻:当window.width被调整执行的功能,但并不是高度

var myGlobalVariable = {}; 

$(window).resize(function(e) { 
    duringResize(); 
    myGlobalVariable.windowWidth = window.innerWidth; 
}); 

function widthHasChanged() { 
    return window.innerWidth !== myGlobalVariable.windowWidth; 
} 

function duringResize() { 
    if(widthHasChanged()) { 
     if(Modernizr.mq('all and (min-width:1000px)')) { 
      /* Do stuff for tabs */ 
     } else { 
      /* Do stuff for accordion */ 
     } 
    } 
} 

,因为我不必使用全局变量来存储浏览器窗口的最后宽以请检查是否我不开心这个宽度已更改。

我必须这样做的原因是因为在手机上,当标签处于手风琴模式时,单击其中一个实际使文档更高以容纳标签内容。出于某种原因,即使移动设备上的“窗口”尺寸仍然相同,这也被归类为重新调整大小。这意味着我的标签/手风琴代码即使在宽度没有改变时也被调用,这使得事情变得糟糕。

有什么我失踪或者这是实现这一目标的唯一途径? jQuery和香草JavaScript解决方案是受欢迎的。

没有绑定到对窗口宽度改变特定事件。你的解决方案对我来说很好。

我能想到的唯一方法是定时检查$(window).width。我认为,平衡,单一的全球变量是可取的:)

+0

谢谢,我怀疑,但它是我一直在看这一整天的事情之一,我已经实现了各种不同的解决方案,以取得不同的成功。这是第一个实际工作正常的人。它只是没有我想要的那么优雅。 – MrMisterMan 2013-03-08 14:35:19