2012-09-17 83 views
2

我试着找了很久的答案,但我没有找到任何东西。检测溢出内容

我正在使用contentEditable div在210x297mm页面上完全写入文本。当页面的JavaScript结束增加了下一个:

if(container.scrollHeight > container.clientHeight) 
{ 
    page_number = page_number+1 
    $('#editor').append('<div id="page_'+page_number+'" class="page" onkeyup="javascript:check_page(this);" contentEditable></div><div class="marginbottom"></div>'); 
    $("#page_"+page_number).attr("tabindex",-1).focus(); 
} 

一切正常,除非我贴的div内的任何较长的文字在每一页的末尾。然后只有部分文本apears和其余部分去div(并且因为'overflow:hidden'是不可见的)。

是否有任何JavaScript/jquery方法来检测溢出的内容并将其移动到下一页(我没有找到它)或任何CSS样式,这将允许我分隔每个div内的文本? 我读过关于CSS3多列,我需要做类似的操作,但分隔行,而不是列。

回答

1

我认为您最好的选择是不要使用overflow: hidden,而是使用auto,并尝试使用JavaScript检测是否存在滚动高度检查溢出。

在这种情况下,您可以动态地开始移动文本的各个部分(一个字一个字也许),直到内容符合可用空间。

对于一些具体的技术检查此线程出例如:detect elements overflow using jquery

+0

恕我直言,这种解决方案是不是真的efective,但我会尝试使用它。是否没有任何jQuery(或其他)库允许以更快和更简单的方式处理溢出? – user1678401

+0

@ user1678401问题在于浏览器并没有真正为JavaScript提供深入了解内联内容呈现的信息。 – Pointy

+0

@ user1678401同意了,这是一个有点复杂的方法,但浏览器不是为手动分页布局设计的。让我们希望Adobe围绕这些更高级的CSS布局功能的工作即将在所有浏览器中登陆! – dain