From 06b7ad3adfa1fc6b94c94481c513aa661c1884a6 Mon Sep 17 00:00:00 2001 From: Jackson Ray Hamilton Date: Mon, 1 Feb 2016 13:42:04 -0800 Subject: [PATCH] Scale fixed-layout books --- src/layout.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/layout.js b/src/layout.js index 0a9e69c..65d85f9 100644 --- a/src/layout.js +++ b/src/layout.js @@ -125,6 +125,8 @@ EPUBJS.Layout.Fixed = function(){ EPUBJS.Layout.Fixed.prototype.format = function(documentElement, _width, _height, _gap){ var columnWidth = EPUBJS.core.prefixed('columnWidth'); + var transform = EPUBJS.core.prefixed('transform'); + var transformOrigin = EPUBJS.core.prefixed('transformOrigin'); var viewport = documentElement.querySelector("[name=viewport]"); var content; var contents; @@ -145,6 +147,17 @@ EPUBJS.Layout.Fixed.prototype.format = function(documentElement, _width, _height } } + //-- Scale fixed documents so their contents don't overflow, and + // vertically and horizontally center the contents + var widthScale = _width / width; + var heightScale = _height / height; + var scale = widthScale < heightScale ? widthScale : heightScale; + documentElement.style.position = "absolute"; + documentElement.style.top = "50%"; + documentElement.style.left = "50%"; + documentElement.style[transform] = "scale(" + scale + ") translate(-50%, -50%)"; + documentElement.style[transformOrigin] = "0px 0px 0px"; + //-- Adjust width and height documentElement.style.width = width + "px" || "auto"; documentElement.style.height = height + "px" || "auto";