On affiche toujours le rail de défilement pour pouvoir, à coup sûr obtenir la position.
[Portfolio.git] / skins / photo_film_viewer.js
index cf55fd9..4c21355 100644 (file)
@@ -2,8 +2,8 @@
 * © 2008 Benoît Pin – Centre de recherche en informatique – École des mines de Paris
 * http://plinn.org
 * Licence Creative Commons http://creativecommons.org/licenses/by-nc/2.0/
-* $Id: photo_film_viewer.js 1303 2009-08-21 22:19:05Z pin $
-* $URL: http://svn.luxia.fr/svn/labo/projects/zope/Portfolio/trunk/skins/photo_film_viewer.js $
+* 
+* 
 */
 
 var FilmSlider;
@@ -92,15 +92,15 @@ FilmSlider.prototype.resizeSlider = function(evt) {
        var filmWidth = this.slideSize * this.filmLength;
        var sliderRatio = this.sliderRatio =  filmBarWidth / filmWidth;
        var sliderWidth = filmBarWidth * sliderRatio;
+       this.rail.style.width = filmBarWidth + 'px';
+       this.rail.style.display = 'block';
+       this.rail.style.visibility = 'visible';
        if (sliderRatio < 1) {
-               this.rail.style.width = filmBarWidth + 'px';
                this.slider.style.width = Math.round(sliderWidth) + 'px';
-               this.rail.style.display = 'block';
-               this.rail.style.visibility = 'visible';
+               this.slider.style.visibility = 'visible';
        }
        else {
-               this.rail.style.display = 'none';
-               this.rail.style.visibility = 'hidden';
+               this.slider.style.visibility = 'hidden';
        }
        
        this.winSize = {'width'  : getWindowWidth(),
@@ -122,9 +122,10 @@ FilmSlider.prototype.fitToScreen = function(evt) {
 
 FilmSlider.prototype._fitToScreen = function(evt) {
        var wh = getWindowHeight();
-       var ch = document.body.clientHeight;
+       var rb = getObjectTop(this.rail) + getObjectHeight(this.rail); // rail bottom
+       var delta = wh - rb
        var sh = getObjectHeight(this.stretchable);
-       var newSize = sh + wh - ch;
+       var newSize = sh + delta;
        this.stretchable.style.height = newSize + 'px';
        
        var ratio = this.image.height / this.image.width;