Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JavaScript检测水平div溢出?_Javascript_Html_Overflow_Detection - Fatal编程技术网

用JavaScript检测水平div溢出?

用JavaScript检测水平div溢出?,javascript,html,overflow,detection,Javascript,Html,Overflow,Detection,我有一个DIV里面有很多儿童DIV。我想要的是类似于Firefox的标签,当你有太多的标签打开或者主DIV宽度太小时,界面会检测到溢出并在右边显示一个按钮列出所有隐藏的标签。问题是我甚至不知道从哪里开始寻求帮助。谷歌搜索发现: 看起来不错,而且与框架无关 但也许有人会想出一个代码更少的解决方案 哦,猜猜哪个流行的编码社区网站把谷歌搜索结果搞砸了 javascript detect overflow :)我的方法是从如何添加新的div开始工作。无论发生什么事件,我都会向文档中添加一个处理程序

我有一个DIV里面有很多儿童DIV。我想要的是类似于Firefox的标签,当你有太多的标签打开或者主DIV宽度太小时,界面会检测到溢出并在右边显示一个按钮列出所有隐藏的标签。问题是我甚至不知道从哪里开始寻求帮助。

谷歌搜索发现:

看起来不错,而且与框架无关

但也许有人会想出一个代码更少的解决方案

哦,猜猜哪个流行的编码社区网站把谷歌搜索结果搞砸了

javascript detect overflow 

:)

我的方法是从如何添加新的div开始工作。无论发生什么事件,我都会向文档中添加一个处理程序,该处理程序运行一个脚本,该脚本检查各种div的大小,以确保它们满足您的要求。如果它们太大(或太多),则隐藏其中一些,并添加带有显示逻辑的按钮。

是否将主DIV设置为
溢出:隐藏

如果是这样,您可以通过递增scrollLeft属性,然后查询它以查看是否已更改,来测试它是否需要溢出:

function containsTooMuch(el) {
    var original = el.scrollLeft++;
    return el.scrollLeft-- > original;
}

Jason,你有我可以查看的测试页面吗?如果jQuery,这里有一个更棒的答案:if($('div id')[0]。scrollWidth>$('div id')。width()){//Text has overflow}~