如何判断<div>何时充满了文本?</div>

时间:2009-12-01 20:21:13

标签: javascript html css

想象一个带有元素的网站 该网站想要运行一些JS,它将用随机文本填充div,当div满了它应该清除并重新开始。是的,我知道这听起来很奇怪,但问题是,JS怎么知道div何时满了,并且会开始溢出?

'full',我的意思是不再有可见的文字放在div中。我想这是一个滚动条将启用/可见的点。

5 个答案:

答案 0 :(得分:4)

你可以做的是在内部div中实际拥有文本,它具有与容器相同的固定宽度,但没有固定的高度。然后让内部div随其内容增长,并检查其高度是否接近父div的固定高度

答案 1 :(得分:2)

您可以将div的实际高度与该div的CSS中定义的高度进行比较,以查看实际高度是否更大 - 因此是'溢出'。

if(document.getElementById('div').offsetHeight > 
document.getElementById('div').style.height) {
   //do something
}

答案 2 :(得分:0)

您无法判断任何更多文本是否会导致溢出...也许文本只是一个小i,甚至是零宽度空间的加载。您所能做的就是添加文本,然后查看它是否会溢出。

var hasoverflowed= div.offsetHeight<div.scrollHeight;
// more or less... modulo borders

答案 3 :(得分:0)

假设您的div是固定高度,请设置overflow:hidden并检查div.scrollHeight属性。

if(myDiv.scrollHeight > myDiv.offsetHeight) { /* the div is full */ }
else { /* there is room left */ }

答案 4 :(得分:-2)

通过计算div中的字符,您应该能够非常接近。如果你正在打字,你可能需要在keyUp上执行此操作,或者如果没有通过键入来填充其他事件,则可能需要这样做。