2011-04-01 190 views
4

所以我遇到了一些jQuery的問題。jQuery遍歷p

基本上,我需要創建一個函數,當它變得對容器來說太大時,會分割一個段落。其中一半將留在目前的集裝箱中,其餘的將下降到下一個。

基本上我想逐行瀏覽文本,測試它的高度和它上面的所有行。有沒有一種方法可以遍歷一段文字?

另外,在調整大小時,我會將此綁定到偵聽器,以便在寬度更改時,內容在每個元素中仍保持相同高度。

我希望一切都有意義!

+0

您可以提供更多信息,例如文本如何添加到容器中?這很大程度上可能取決於內容更新的方式和時間。 – whoughton 2011-04-01 01:17:27

+0

這可能會幫助http://stackoverflow.com/questions/783899/how-can-i-count-text-lines-inside-an-dom-element-can-i – Michal 2011-04-01 01:21:51

+0

哎呀,由於某種原因,我沒有得到郵件提醒。 說實話,我還沒有嘗試過任何東西。我的第一個想法是運行for循環,每次添加一個字從(0,i)開始,創建一個「測試」段,我可以找到它的高度。對此有何想法?這會使內容在調整大小方面滯後嗎? 希望有人可能有一個簡單的解決方案之前,我開始擺弄。 – 2011-04-02 01:37:27

回答

1

我不認爲你可以通過段落中的「行」,因爲可能看起來像10條線實際上可能只有一條包裝線(沒有實際的換行符)。

例如,您可以將overflow設置爲在容器上顯示,並檢測溢出發生的時間是height/clientHeight,然後通過計算單詞或類似物來分割文本。

UPDATE:

這裏是一個演示:http://jsfiddle.net/AQwFM/4/

顯然需要改進,但應該讓你開始。

+0

謝謝,這看起來像我將不得不做的。任何想法,如果這會使內容滯後調整大小/負載? – 2011-04-02 01:43:29

+0

任何'resize'處理程序都會引入不必要的開銷,但它不會超過段落的行數,即使可能也是如此:)您可能需要查看[jQuery throttle](http:/ /benalman.com/projects/jquery-throttle-debounce-plugin/)來減少調整大小的次數。樂於幫助 – Daniel 2011-04-02 01:58:00

+0

增加了一個演示,以便您可以看到演出等。垂直調整最頂端的框,直到內容不能滿足哪一點內容將分成兩半,並在兩個框之間劃分。 – Daniel 2011-04-02 03:20:57