From 5d20759dcc69618ebedc1d6444e162af66914b06 Mon Sep 17 00:00:00 2001 From: Bala Clark Date: Tue, 19 Mar 2013 21:00:47 +0100 Subject: [PATCH] don't lose the reading position after applying enhancements. --- lib/ComicBook.js | 14 +++++----- lib/ComicBook.min.js | 64 ++++++++++++++++++++++---------------------- 2 files changed, 40 insertions(+), 38 deletions(-) diff --git a/lib/ComicBook.js b/lib/ComicBook.js index 29c165d..38f2d4f 100755 --- a/lib/ComicBook.js +++ b/lib/ComicBook.js @@ -8,7 +8,6 @@ - trigger preload if requesting valid but not loaded images (can happen if network was interupted) - loading and generally hackiness of pointer is buggy, fix. - check for html5 feature support where used: diveintohtml5.org/everything.html or www.modernizr.com - - when applying enhancements reading position gets lost - full browser test - IE9 / FF3.6+ / Chrome / Safari / Opera - don't inlcude the closure compiler, expect it (or similar) to be installed instead @@ -542,7 +541,10 @@ function ComicBook(id, srcs, opts) { /** * Draw the current page in the canvas */ - ComicBook.prototype.drawPage = function(page_no) { + ComicBook.prototype.drawPage = function(page_no, reset_scroll) { + + var reset_scroll = (typeof reset_scroll !== "undefined") ? reset_scroll : true; + var scrollY = reset_scroll ? 0 : window.scrollY; // if a specific page is given try to render it, if not bail and wait for preload() to render it if (typeof page_no === "number" && page_no < srcs.length && page_no > 0) { @@ -690,7 +692,7 @@ function ComicBook(id, srcs, opts) { } // make sure the top of the page is in view - window.scroll(0, 0); + window.scroll(0, scrollY); }; /** @@ -762,7 +764,7 @@ function ComicBook(id, srcs, opts) { } else { delete options.enhance[method]; } - ComicBook.prototype.drawPage(); + ComicBook.prototype.drawPage(null, false); }, /** @@ -812,7 +814,7 @@ function ComicBook(id, srcs, opts) { */ resaturate: function() { delete options.enhance.desaturate; - ComicBook.prototype.drawPage(); + ComicBook.prototype.drawPage(null, false); }, /** @@ -840,7 +842,7 @@ function ComicBook(id, srcs, opts) { desharpen: function() { delete options.enhance.sharpen; - ComicBook.prototype.drawPage(); + ComicBook.prototype.drawPage(null, false); } }; diff --git a/lib/ComicBook.min.js b/lib/ComicBook.min.js index 440e2c4..927552b 100644 --- a/lib/ComicBook.min.js +++ b/lib/ComicBook.min.js @@ -1,39 +1,39 @@ -var Pixastic=function(){function c(a,g,o){a.addEventListener?a.addEventListener(g,o,!1):a.attachEvent&&a.attachEvent("on"+g,o)}function b(a){var g=!1,o=function(){g||(g=!0,a())};document.write('