X-Git-Url: http://git.rot13.org/?p=bookreader.git;a=blobdiff_plain;f=BookReader%2FBookReader.js;h=4b3e686c09fbeb55ffb221d28152aa7a9add8525;hp=26aebbe6d769cd192d4d0b65e844280f53c20f9f;hb=HEAD;hpb=1edea45fe2591a0bbaccc66a520fc2a11f7f6b95 diff --git a/BookReader/BookReader.js b/BookReader/BookReader.js index 26aebbe..4b3e686 100644 --- a/BookReader/BookReader.js +++ b/BookReader/BookReader.js @@ -18,7 +18,6 @@ This file is part of BookReader. The BookReader source is hosted at http://github.com/openlibrary/bookreader/ - archive.org cvs $Revision: 1.2 $ $Date: 2009-06-22 18:42:51 $ */ // BookReader() @@ -144,6 +143,7 @@ function BookReader() { return this; }; +(function ($) { // init() //______________________________________________________________________________ BookReader.prototype.init = function() { @@ -152,7 +152,16 @@ BookReader.prototype.init = function() { this.pageScale = this.reduce; // preserve current reduce // Find start index and mode if set in location hash - var params = this.paramsFromFragment(window.location.hash); + var params = {}; + if (window.location.hash) { + // params explicitly set in URL + params = this.paramsFromFragment(window.location.hash); + } else { + // params not explicitly set, use defaults if we have them + if ('defaults' in this) { + params = this.paramsFromFragment(this.defaults); + } + } // Sanitize/process parameters @@ -804,9 +813,17 @@ BookReader.prototype.lazyLoadImage = function (dummyImage) { // Remove class so we no longer count as loading $(this).removeClass('BRlazyloading'); }) - .attr( { width: $(dummyImage).width(), - height: $(dummyImage).height(), - src: $(dummyImage).data('srcURL') + + //the width set with .attr is ignored by Internet Explorer, causing it to show the image at its original size + //but with this one line of css, even IE shows the image at the proper size + .css({ + 'width': $(dummyImage).width()+'px', + 'height': $(dummyImage).height()+'px' + }) + .attr({ + 'width': $(dummyImage).width(), + 'height': $(dummyImage).height(), + 'src': $(dummyImage).data('srcURL') }); // replace with the new img @@ -1238,7 +1255,21 @@ BookReader.prototype._reduceSort = function(a, b) { // Attempts to jump to page. Returns true if page could be found, false otherwise. BookReader.prototype.jumpToPage = function(pageNum) { - var pageIndex = this.getPageIndex(pageNum); + var pageIndex; + + // Check for special "leaf" + var re = new RegExp('^leaf(\\d+)'); + leafMatch = re.exec(pageNum); + if (leafMatch) { + console.log(leafMatch[1]); + pageIndex = this.leafNumToIndex(parseInt(leafMatch[1],10)); + if (pageIndex === null) { + pageIndex = undefined; // to match return type of getPageIndex + } + + } else { + pageIndex = this.getPageIndex(pageNum); + } if ('undefined' != typeof(pageIndex)) { var leafTop = 0; @@ -2211,6 +2242,10 @@ BookReader.prototype.flipLeftToRight = function(newIndexL, newIndexR) { //console.log(' animating newIndexR ' + newIndexR + ' to ' + newWidthR + ' from ' + $(self.prefetchedImgs[newIndexR]).width()); $(self.prefetchedImgs[newIndexR]).animate({width: newWidthR+'px'}, self.flipSpeed, 'easeOutSine', function() { $(self.prefetchedImgs[newIndexL]).css('zIndex', 2); + + //jquery adds display:block to the element style, which interferes with our print css + $(self.prefetchedImgs[newIndexL]).css('display', ''); + $(self.prefetchedImgs[newIndexR]).css('display', ''); $(self.leafEdgeR).css({ // Moves the right leaf edge @@ -2359,6 +2394,10 @@ BookReader.prototype.flipRightToLeft = function(newIndexL, newIndexR) { $(self.leafEdgeTmp).animate({left: gutter-newWidthL-leafEdgeTmpW+'px'}, speed, 'easeOutSine'); $(self.prefetchedImgs[newIndexL]).animate({width: newWidthL+'px'}, speed, 'easeOutSine', function() { $(self.prefetchedImgs[newIndexR]).css('zIndex', 2); + + //jquery adds display:block to the element style, which interferes with our print css + $(self.prefetchedImgs[newIndexL]).css('display', ''); + $(self.prefetchedImgs[newIndexR]).css('display', ''); $(self.leafEdgeL).css({ width: newLeafEdgeWidthL+'px', @@ -3327,7 +3366,6 @@ BookReader.prototype.initNavbar = function() { //append icon to handle var handleHelper = $('#BRpager .ui-slider-handle') - // $$$mang update logic for setting the page number label -- use page numbers if available .append('