我正在为动态生成的可打印页面创建脚本。由于该页面是即时生成的,并且各部分可能具有不同的高度,因此插入到标记中的预定分页类不会削减它。为了解决这个问题,我使用data-print =“section”属性检查每一个的高度。动态分页 - Jquery
我在努力的是......每个data-print =“section”需要产生一个运行总数。当该总数大于变量“pageHeight”时,它将插入以强制内容到第二页。插入分页符后,需要重新启动运行总计,并在总和大于“pageHeight”时插入另一个分页符。
之前示例 “脚本” 与960像素休息...
<div class="item" data-print="section"></div> = 400px
<div class="item" data-print="section"></div> = 200px
<ul data-print="section"> = 300px
<li>
<li>
</ul>
<div class="item" data-print="section"></div> = 50px
<div class="item" data-print="section"></div> = 100px
示例 “脚本” 后,在960像素休息...
<div class="item" data-print="section"></div> = 400px
<div class="item" data-print="section"></div> = 200px
<ul data-print="section"> = 300px
<li>
<li>
</ul>
<div class="item" data-print="section"></div> = 50px
<div class="page-break"></div>
<div class="item" data-print="section"></div> = 100px
当前脚本
$('[data-print=section]').each(function() {
var staticHeight = $(this).filter(':visible').outerHeight(true);
var pageHeight = 400
console.log(staticHeight)
if ($(this).height() > pageHeight) {
$(this).after('<div class="page-break"></div>');
}
});
在此先感谢
这很好,谢谢。 – kojay
您可能需要考虑在元素之前而不是之后添加分页符,如果不是,您最终可能会得到比pageHeight更高的两个元素。 –