0

我试图在 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() ;
    }

})

4

1 回答 1

0

您的问题与每次调整窗口大小时多次触发调整大小功能有关。我在chrome中测试过,它触发了两次。试试这个: https ://github.com/louisremi/jquery-smartresize

于 2013-04-05T22:16:37.463 回答