// ---- C O R R E C T P O S I T I O N O F I M A G E S ---- var classElemFullPage = "full-page"; // ← class of full page images class fullPageStuff extends Paged.Handler { constructor(chunker, polisher, caller) { super(chunker, polisher, caller); this.fullPageEls = new Set(); this.usedPagedEls = new Set(); } //find from the css the element you wanna have full page onDeclaration(declaration, dItem, dList, rule) { if (declaration.property == "position") { if (declaration.value.children.head.data.name.includes("fullpage")) { let sel = csstree.generate(rule.ruleNode.prelude); sel = sel.replace('[data-id="', "#"); sel = sel.replace('"]', ""); this.floatFullPage.push(sel.split(",")); } } } renderNode(clone, node) { // if you find a full page element, move it in the array if (node.nodeType == 1 && node.classList.contains(classElemFullPage)) { // console.log(node); this.fullPageEls.add(node); this.usedPagedEls.add(node); // remove the element from the flow by hiding it. clone.style.display = "none"; } } afterPageLayout(pageElement, page, breakToken, chunker) { // if there is an element in the fullPageEls Set, (goodbye arrays!) for (let img of this.fullPageEls) { let fullPage = chunker.addPage(); fullPage.element .querySelector(".pagedjs_page_content") .insertAdjacentElement("afterbegin", img); fullPage.element.classList.add("addedpage"); fullPage.element.classList.add("pagedjs_named_page"); fullPage.element.classList.add("pagedjs_pagedjs-fullpage_page"); if(img.classList.contains('background-black')){ fullPage.element.classList.add("pagedjs_pagedjs-fullpageblack_page"); } this.fullPageEls.delete(img); } } } Paged.registerHandlers(fullPageStuff);