最有效的方法来分割基于元素高度的段落

时间:2012-05-04 10:38:03

标签: javascript jquery html

将非常长的HTML段落元素动态拆分为给定高度的较小段落的最有效方法是什么?

下面的函数(jQuery)递归地从文本中逐个删除一个单词,检查新的长度,并在文本被分解成可接受的小块时停止。

function split_par(element, max_height)
{
  if (element.height() <= max_height)
    return;
  var array = element.text().split(" ");
  var pos = 0;
  while (element.height () > max_height)
  {
    pos -= 1;
    element.html("<p>" + array.slice(0,pos).join(" ") + "</p>");
  }
  var next_par = element.clone();
  next_par.html("<p>" + array.slice(pos).join(" ") + "</p>");
  $('body').append(next_par);
  split_par(next_par, max_height);
}

效率低,需要很长时间,但这是我发现的最可靠的方法。我相信有更好的方法。我也不熟悉Javascript或jQuery,所以对这些代码的一般提示将不胜感激。

1 个答案:

答案 0 :(得分:0)

也许将文本放在容器元素(例如div)中并使用像Jquery Masonry这样的东西就可以了。