Javascript 调整window.width而不是高度时执行此功能
我正在开发一个快速响应的网站,我有一些标签,可以在小屏幕上从标签变成手风琴。以下是我目前的做法:Javascript 调整window.width而不是高度时执行此功能,javascript,jquery,html,Javascript,Jquery,Html,我正在开发一个快速响应的网站,我有一些标签,可以在小屏幕上从标签变成手风琴。以下是我目前的做法: var myGlobalVariable = {}; $(window).resize(function(e) { duringResize(); myGlobalVariable.windowWidth = window.innerWidth; }); function widthHasChanged() { return window.innerWidth !== m
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和vanilla javascript解决方案。对于窗口宽度的更改,没有可绑定的特定事件。我觉得你的解决方案很好
我唯一能想到的另一种方法是定期检查计时器内的$(window).width。总的来说,我认为单一全局变量更可取:)谢谢,我怀疑,但这是我整天都在关注的事情之一,我已经实施了各种解决方案,取得了不同的成功。这是第一个真正正常工作的。只是没有我想要的那么优雅。