如何检测溢出的 HTML 元素
Posted
技术标签:
【中文标题】如何检测溢出的 HTML 元素【英文标题】:How to detect overflow HTML elements 【发布时间】:2015-08-28 11:27:13 【问题描述】:我创建了一个导航栏,其中包含 div。
当我放大时,我通过css [overflow:hidden]
隐藏了 div 移出导航栏的情况。
我的目标是创建一个 java-script 变量,它会告诉我导航栏之外的所有 div (由于溢出而隐藏),因为我需要将它们添加到可折叠菜单中,即使单个 div 出来时也会出现导航栏。
提前致谢
【问题讨论】:
【参考方案1】:将scrollWidth/scrollHeight与元素的clientWidth/clientHeight进行比较。
if (e.scrollWidth > e.clientWidth)/*overflow*/
https://jsfiddle.net/pdrk50a6/
编辑:我不知道你的根元素,但最终它会是这样的。
document.body.onresize = function()
var tR = [];
var tL = document.querySelectorAll('div');
for(var i=0, j=tL.length; i<j; i++)
if (tL[i].scrollWidth > tL[i].clientWidth) tR.push(tL[i])
//Do whatever you need with the tR elements (overflown)
【讨论】:
好的,但你能告诉我如何检测它何时发生变化,或者发生放大时生成的事件吗? 我们在谈论什么样的缩放(动作和设备 | 定制)? 我不知道该操作触发的任何特定跨浏览器事件。有很多方法可以检测到它,但这将是另一个问题/主题。 @Pinturikkio document.body.onresize 适用于现代浏览器(Chrome 和 IE9+),如果您有兴趣,可以说一下。 不客气。如果您对此主题没有其他问题,请随时接受答案,以便更多同行看到您的案例得到解决。以上是关于如何检测溢出的 HTML 元素的主要内容,如果未能解决你的问题,请参考以下文章