56 lines
1.8 KiB
JavaScript
56 lines
1.8 KiB
JavaScript
|
|
// ---- 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);
|