Calcul de la retaille prenant en compte l'absence de barre de scroll horizontal
[Portfolio.git] / skins / photo_film_viewer.js
index 226e6dd..ff8d61e 100644 (file)
@@ -73,11 +73,16 @@ FilmSlider = function(filmBar, slider, ctxInfos, image, toolbar, breadcrumbs) {
                                           'out' :      function(evt){thisSlider.mouseOutHandler(evt);}
                                          };
 
-       this.resizeSlider();
+       if (browser.isMobile) {
+               this.rail.className = 'hidden';
+       }
+       else { 
+               this.resizeSlider();
+       }
        this.addEventListeners();
 };
 
-
+if (!browser.isMobile) {
 FilmSlider.prototype.resizeSlider = function(evt) {
        var filmBarWidth = this.filmBarWidth;
        if (!filmBarWidth) { return; }
@@ -105,6 +110,12 @@ FilmSlider.prototype.resizeSlider = function(evt) {
                this.initialized = true;
        }
 };
+}
+
+else {
+       // pas de barre de scroll horizontal pour les tablettes
+       FilmSlider.prototype.resizeSlider = function(evt) {};
+}
 
 FilmSlider.prototype._checkSizeAfterLoad = function(evt) {
        this._barSizes = [];
@@ -148,7 +159,12 @@ FilmSlider.prototype.fitToScreen = function(evt) {
 
 FilmSlider.prototype._fitToScreen = function(evt) {
        var wh = getWindowHeight();
+       if (!browser.isMobile) {
        var rb = getObjectTop(this.rail) + getObjectHeight(this.rail); // rail bottom
+       }
+       else {
+               var rb = getObjectTop(this.filmBar) + getObjectHeight(this.filmBar); // film bottom
+       }
        var delta = wh - rb;
        var sh = getObjectHeight(this.stretchable);
        var newSize = sh + delta;
@@ -261,6 +277,11 @@ FilmSlider.prototype.addEventListeners = function() {
        else if (browser.isIE6up) {
                addListener(this.filmBar, 'mousewheel', function(evt){thisSlider.mouseWheelHandler(evt);});
        }
+       if (browser.isMobile) {
+               this.filmBar.addEventListener('touchstart', function(evt){thisSlider.touchStartHandler(evt);}, false);
+               this.filmBar.addEventListener('touchmove', function(evt){thisSlider.touchMoveHandler(evt);}, false);
+               this.filmBar.addEventListener('touchend', function(evt){thisSlider.touchEndHandler(evt);}, false);
+       }
        
        addListener(document, 'keydown', function(evt){thisSlider.keyDownHandler(evt);});
        addListener(document, 'keypress', function(evt){thisSlider.keyPressHandler(evt);});
@@ -564,6 +585,21 @@ else if (browser.isIE6up) {
        };
 }
 
+FilmSlider.prototype.touchStartHandler = function(evt) {
+       this.filmStartX = parseInt(this.film.style.left, 10);
+       this.touchStartX = evt.pageX;
+};
+
+FilmSlider.prototype.touchMoveHandler = function(evt) {
+       var delta = this.touchStartX - evt.pageX;
+       this.film.style.left = String(this.filmStartX - delta) + 'px';
+};
+
+FilmSlider.prototype.touchEndHandler = function(evt) {
+       this.touchStartX = undefined;
+};
+
+
 FilmSlider.prototype.keyDownHandler = function(evt) {
        evt = getEventObject(evt);
        switch (evt.keyCode) {