@@ -277,7 +277,6 @@ define([
277
277
278
278
settings = $ . extend ( dimentions , {
279
279
top : top ,
280
- bottom : bottom ,
281
280
left : left ,
282
281
right : right
283
282
} ) ;
@@ -557,6 +556,16 @@ define([
557
556
trailing : false
558
557
} ) ;
559
558
559
+ /**
560
+ * Returns top position value for passed jQuery object.
561
+ *
562
+ * @param $el
563
+ * @return {number }
564
+ */
565
+ function getTop ( $el ) {
566
+ return parseInt ( $el . get ( 0 ) . style . top ) ;
567
+ }
568
+
560
569
function shiftImage ( dx , dy , e ) {
561
570
var top = + imagePosY + dy ,
562
571
left = + imagePosX + dx ,
@@ -584,16 +593,13 @@ define([
584
593
}
585
594
586
595
if ( $image . height ( ) > $imageContainer . height ( ) ) {
587
-
588
- if ( $imageContainer . offset ( ) . top + $imageContainer . height ( ) > top + $image . height ( ) ) {
589
- top = $imageContainer . offset ( ) . top + $imageContainer . height ( ) - $image . height ( ) ;
596
+ if ( $imageContainer . height ( ) > $image . height ( ) + top ) {
597
+ $image . css ( 'top' , $imageContainer . height ( ) - $image . height ( ) ) ;
590
598
} else {
591
- top = $imageContainer . offset ( ) . top < top ? 0 : top ;
599
+ top = $image . height ( ) - getTop ( $image ) - $imageContainer . height ( ) ;
600
+ dy = dy < top ? dy : top ;
601
+ $image . css ( 'top' , getTop ( $image ) + dy ) ;
592
602
}
593
- $image . offset ( {
594
- 'top' : top
595
- } ) ;
596
- $image . css ( 'bottom' , '' ) ;
597
603
}
598
604
599
605
if ( $image . width ( ) > $imageContainer . width ( ) ) {
@@ -690,7 +696,7 @@ define([
690
696
} else if ( gallery . fullScreen && ( ! transitionEnabled || ! transitionActive ) ) {
691
697
e . preventDefault ( ) ;
692
698
693
- imagePosY = $image . offset ( ) . top ;
699
+ imagePosY = getTop ( $image ) ;
694
700
imagePosX = $image . offset ( ) . left ;
695
701
696
702
if ( isTouchEnabled ) {
@@ -746,6 +752,7 @@ define([
746
752
}
747
753
748
754
if ( allowZoomOut ) {
755
+ imagePosY = getTop ( $ ( fullscreenImageSelector , $gallery ) ) ;
749
756
shiftImage ( clientX - startX , clientY - startY , e ) ;
750
757
}
751
758
}
@@ -771,13 +778,13 @@ define([
771
778
isFullScreen = $ ( gallerySelector ) . data ( 'fotorama' ) . fullScreen ,
772
779
initVars = function ( ) {
773
780
imagePosX = $ ( fullscreenImageSelector , $gallery ) . offset ( ) . left ;
774
- imagePosY = $ ( fullscreenImageSelector , $gallery ) . offset ( ) . top ;
781
+ imagePosY = getTop ( $ ( fullscreenImageSelector , $gallery ) ) ;
775
782
} ;
776
783
777
784
if ( ( $focus . attr ( 'data-gallery-role' ) || ! $focus . length ) && allowZoomOut ) {
778
785
if ( isFullScreen ) {
779
786
imagePosX = $ ( fullscreenImageSelector , $ ( gallerySelector ) ) . offset ( ) . left ;
780
- imagePosY = $ ( fullscreenImageSelector , $ ( gallerySelector ) ) . offset ( ) . top ;
787
+ imagePosY = getTop ( $ ( fullscreenImageSelector , $ ( gallerySelector ) ) ) ;
781
788
}
782
789
783
790
if ( e . keyCode === 39 ) {
0 commit comments