diff --git a/src/contents.js b/src/contents.js index be6e5fc..e52b2b0 100644 --- a/src/contents.js +++ b/src/contents.js @@ -1070,7 +1070,7 @@ class Contents { * @param {number} width * @param {number} height */ - fit(width, height){ + fit(width, height, section){ var viewport = this.viewport(); var viewportWidth = parseInt(viewport.width); var viewportHeight = parseInt(viewport.height); @@ -1100,6 +1100,11 @@ class Contents { this.css("background-size", viewportWidth * scale + "px " + viewportHeight * scale + "px"); this.css("background-color", "transparent"); + if (section && section.properties.includes("page-spread-left")) { + // set margin since scale is weird + var marginLeft = width - (viewportWidth * scale); + this.css("margin-left", marginLeft + "px"); + } } /** diff --git a/src/layout.js b/src/layout.js index 46cbfc1..e307c3f 100644 --- a/src/layout.js +++ b/src/layout.js @@ -189,11 +189,11 @@ class Layout { * @param {Contents} contents * @return {Promise} */ - format(contents){ + format(contents, section){ var formating; if (this.name === "pre-paginated") { - formating = contents.fit(this.columnWidth, this.height); + formating = contents.fit(this.columnWidth, this.height, section); } else if (this._flow === "paginated") { formating = contents.columns(this.width, this.height, this.columnWidth, this.gap); } else { // scrolled diff --git a/src/managers/views/iframe.js b/src/managers/views/iframe.js index 48eb480..f6ff369 100644 --- a/src/managers/views/iframe.js +++ b/src/managers/views/iframe.js @@ -149,7 +149,7 @@ class IframeView { .then(function(){ // apply the layout function to the contents - this.layout.format(this.contents); + this.layout.format(this.contents, this.section); // find and report the writingMode axis let writingMode = this.contents.writingMode();