Я создаю скрипт для печатаемой страницы, которая генерируется динамически. Поскольку эта страница генерируется «на лету», а разделы могут иметь разную высоту, предопределенный класс разрыва страницы, вставленный в разметку, не сокращает ее. Чтобы обойти это, я проверяю высоту каждого с атрибутом data-print = "section".Dynamic Page-Break - JQuery
То, с чем я борюсь, - это ... каждый data-print = "section" должен генерировать общее количество. Когда эта сумма больше, чем переменная «pageHeight», она вставляет, чтобы заставить контент на вторую страницу. После того, как вставлен разрыв страницы, ему нужно снова запустить текущее общее количество и вставить другое, когда сумма больше, чем «pageHeight».
Пример перед "сценарий" с перерывом на 960px ...
<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
Пример после "сценарий" с перерывом на 960px ...
<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
Current Script
$('[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. –