X-Git-Url: https://svn.cri.ensmp.fr/git/Portfolio.git/blobdiff_plain/66235147e52b54a90a144bbc03627bd1114caf72..bf33c9ca85d7668e07e0a98d7af0be131d665b31:/skins/photo_film_viewer.js?ds=inline diff --git a/skins/photo_film_viewer.js b/skins/photo_film_viewer.js index f1f650d..fa929b2 100644 --- a/skins/photo_film_viewer.js +++ b/skins/photo_film_viewer.js @@ -5,7 +5,6 @@ Licence Creative Commons http://creativecommons.org/licenses/by-nc/2.0/ */ var FilmSlider; - (function(){ var keyLeft = 37, keyRight = 39; @@ -186,6 +185,7 @@ FilmSlider.prototype._fitToScreen = function(evt) { var src = this.image.src.replace(imgRequestedSize, 'size=' + bestFitSize); this.pendingImage.src = src; } + this.adjustImage(this.image); }; FilmSlider.prototype.getBestFitSize = function(ratio) { @@ -210,6 +210,27 @@ FilmSlider.prototype.getBestFitSize = function(ratio) { return DEFAULT_IMAGE_SIZES[i]; }; +FilmSlider.prototype.adjustImage = function(img) { + var dispWidth = parseInt(this.stretchable.style.width, 10); + var imgWidth = img.naturalWidth; + var dispHeight = parseInt(this.stretchable.style.height, 10); + var imgHeight = img.naturalHeight; + var ratio; + + if (imgHeight > dispHeight) { + ratio = dispHeight / imgHeight; + imgWidth = imgWidth * ratio; + imgHeight = dispHeight; + } + if (imgWidth > dispWidth) { + ratio = dispWidth / imgWidth; + imgHeight = imgHeight * ratio; + imgWidth = dispWidth; + } + img.width = imgWidth; + img.height = imgHeight; +}; + if (!browser.isMobile) { FilmSlider.prototype.centerSlide = function(slideIndex) { if (this.sliderRatio > 1) { return; } @@ -721,6 +742,7 @@ FilmSlider.prototype.populateViewer = function(req) { }; FilmSlider.prototype.refreshImage = function() { + this.adjustImage(this.pendingImage); this.image.style.visibility = 'hidden'; this.image.src = this.pendingImage.src; this.image.width = this.pendingImage.width; @@ -750,12 +772,11 @@ FilmSlider.prototype.startThumbnailsLoadQueue = function(evt) { } if (leftSize > rightSize) { for (i = this.center - rightSize - 1 ; i >= 0 ; i--) { - console.log(i); this.thumbnailsLoadingOrder.push(thumbnails[i]); } } else if (leftSize < rightSize) { - for (i = this.center + leftSize ; i < thumbnails.length ; i++) { + for (i = this.center + leftSize + 1 ; i < thumbnails.length ; i++) { this.thumbnailsLoadingOrder.push(thumbnails[i]); } }