我试图在 Jquery 中重现,当视口大小发生变化时,Facebook 如何隐藏或显示打开的聊天框。基本上,如果您打开了 6 个聊天窗口,并且如果您调整或缩小浏览器的大小,如果这 6 个无法修复屏幕大小,则某些聊天窗口会被隐藏。
我正在使用函数 $(window).resize() 来检测所有打开窗口的总宽度加上一些边距是否大于窗口的宽度,然后隐藏第一个聊天窗口,或者如果有空间则显示最后一个更多的窗户。基本弹出或推送到堆栈...
我的方法不起作用,因为每当运行调整大小时,我的脚本都会不断尝试隐藏或显示窗口......(参见下面的代码)
任何建议表示赞赏。
ChatWidget.isEnoughRoom = function() {
return ($(window).width() > ((ChatWidget.WINDOW_WIDTH * $('.chatWindowWidget:visible').length) + ChatWidget.CONTACTLIST_WIDTH + 100));
};
$(window).resize(function(){
if(!ChatWidget.isEnoughRoom()) {
$('.chatWindow:visible:last').hide() ;
} else {
$('.chatWindow:hidden:last').show() ;
}
})