【发布时间】:2014-01-08 13:27:41
【问题描述】:
我想在某个 div 中对文本进行分页,以便它适合允许的区域
逻辑很简单:
1. 将文本拆分为单词
2.逐字添加并计算元素高度
3.如果我们超过高度 - 创建下一页
效果很好
这是我用过的 JS 函数:
function paginate() {
var newPage = $('<pre class="text-page" />');
contentBox.empty().append(newPage);
var betterPageText='';
var pageNum = 0;
var isNewPage = false;
var lineHeight = parseInt(contentBox.css('line-height'), 10);
var wantedHeight = contentBox.height() - lineHeight;
for (var i = 0; i < words.length; i++) {
if (isNewPage) {
isNewPage = false;
} else {
betterPageText = betterPageText + ' ' + words[i];
}
newPage.text(betterPageText + ' ...');
if (newPage.height() >= wantedHeight) {
pageNum++;
if (pageNum > 0) {
betterPageText = betterPageText + ' ...';
}
newPage.text(betterPageText);
newPage.clone().insertBefore(newPage)
betterPageText = '...';
isNewPage = true;
} else {
newPage.text(betterPageText);
}
}
contentBox.craftyslide({ height: wantedHeight });
}
但是当我添加图像时,它会破坏一切。在这种情况下,文本会溢出“绿色”区域。
工作小提琴:http://jsfiddle.net/74W4N/7/
有没有更好的方法对文本进行分页和计算元素高度?
【问题讨论】:
标签: javascript html text pagination