2011-04-01 94 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