2012-09-17 40 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