photoswipe-rails 4.0.8a → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5e96762270aa9d7ac2d89f20bad5fe689288ec7
|
4
|
+
data.tar.gz: b89a3dfd79991ac8d0e9203a17e541afac4bbedc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41faa363a74f39384bfed5d50e02d19f838be81d54a93546772fff8346bc4c21f01dd68fded9bf905536a785c3a9c9a3394fa4a097c1d55bb361b03a96b6664d
|
7
|
+
data.tar.gz: 1afd2faec797e4c0b290193f2ac45a77725a0dc29c5cc17ccc29dbbc4716689f4f26e8d2a344aef415a010cdda0c258b2541dfb3689bc5393eee7314b3c66288
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! PhotoSwipe - v4.0
|
1
|
+
/*! PhotoSwipe - v4.1.0 - 2015-07-11
|
2
2
|
* http://photoswipe.com
|
3
3
|
* Copyright (c) 2015 Dmitry Semenov; */
|
4
4
|
(function (root, factory) {
|
@@ -318,7 +318,7 @@ var _options = {
|
|
318
318
|
pinchToClose: true,
|
319
319
|
closeOnScroll: true,
|
320
320
|
closeOnVerticalDrag: true,
|
321
|
-
verticalDragRange: 0.
|
321
|
+
verticalDragRange: 0.75,
|
322
322
|
hideAnimationDuration: 333,
|
323
323
|
showAnimationDuration: 333,
|
324
324
|
showHideOpacity: false,
|
@@ -334,10 +334,10 @@ var _options = {
|
|
334
334
|
if(isMouseClick) {
|
335
335
|
return 1;
|
336
336
|
} else {
|
337
|
-
return item.initialZoomLevel < 0.7 ? 1 : 1.
|
337
|
+
return item.initialZoomLevel < 0.7 ? 1 : 1.33;
|
338
338
|
}
|
339
339
|
},
|
340
|
-
maxSpreadZoom:
|
340
|
+
maxSpreadZoom: 1.33,
|
341
341
|
modal: true,
|
342
342
|
|
343
343
|
// not fully implemented yet
|
@@ -397,6 +397,7 @@ var _isOpen,
|
|
397
397
|
_currentWindowScrollY,
|
398
398
|
_features,
|
399
399
|
_windowVisibleSize = {},
|
400
|
+
_renderMaxResolution = false,
|
400
401
|
|
401
402
|
// Registers PhotoSWipe module (History, Controller ...)
|
402
403
|
_registerModule = function(name, module) {
|
@@ -442,21 +443,43 @@ var _isOpen,
|
|
442
443
|
_bgOpacity = opacity;
|
443
444
|
self.bg.style.opacity = opacity * _options.bgOpacity;
|
444
445
|
},
|
445
|
-
|
446
|
-
_applyZoomTransform = function(styleObj,x,y,zoom) {
|
446
|
+
|
447
|
+
_applyZoomTransform = function(styleObj,x,y,zoom,item) {
|
448
|
+
if(!_renderMaxResolution || (item && item !== self.currItem) ) {
|
449
|
+
zoom = zoom / (item ? item.fitRatio : self.currItem.fitRatio);
|
450
|
+
}
|
451
|
+
|
447
452
|
styleObj[_transformKey] = _translatePrefix + x + 'px, ' + y + 'px' + _translateSufix + ' scale(' + zoom + ')';
|
448
453
|
},
|
449
|
-
_applyCurrentZoomPan = function() {
|
454
|
+
_applyCurrentZoomPan = function( allowRenderResolution ) {
|
450
455
|
if(_currZoomElementStyle) {
|
456
|
+
|
457
|
+
if(allowRenderResolution) {
|
458
|
+
if(_currZoomLevel > self.currItem.fitRatio) {
|
459
|
+
if(!_renderMaxResolution) {
|
460
|
+
_setImageSize(self.currItem, false, true);
|
461
|
+
_renderMaxResolution = true;
|
462
|
+
}
|
463
|
+
} else {
|
464
|
+
if(_renderMaxResolution) {
|
465
|
+
_setImageSize(self.currItem);
|
466
|
+
_renderMaxResolution = false;
|
467
|
+
}
|
468
|
+
}
|
469
|
+
}
|
470
|
+
|
471
|
+
|
451
472
|
_applyZoomTransform(_currZoomElementStyle, _panOffset.x, _panOffset.y, _currZoomLevel);
|
452
473
|
}
|
453
474
|
},
|
454
475
|
_applyZoomPanToItem = function(item) {
|
455
476
|
if(item.container) {
|
477
|
+
|
456
478
|
_applyZoomTransform(item.container.style,
|
457
479
|
item.initialPosition.x,
|
458
480
|
item.initialPosition.y,
|
459
|
-
item.initialZoomLevel
|
481
|
+
item.initialZoomLevel,
|
482
|
+
item);
|
460
483
|
}
|
461
484
|
},
|
462
485
|
_setTranslateX = function(x, elStyle) {
|
@@ -772,11 +795,11 @@ var publicMethods = {
|
|
772
795
|
_currentWindowScrollY = _offset.y = y;
|
773
796
|
_shout('updateScrollOffset', _offset);
|
774
797
|
},
|
775
|
-
applyZoomPan: function(zoomLevel,panX,panY) {
|
798
|
+
applyZoomPan: function(zoomLevel,panX,panY,allowRenderResolution) {
|
776
799
|
_panOffset.x = panX;
|
777
800
|
_panOffset.y = panY;
|
778
801
|
_currZoomLevel = zoomLevel;
|
779
|
-
_applyCurrentZoomPan();
|
802
|
+
_applyCurrentZoomPan( allowRenderResolution );
|
780
803
|
},
|
781
804
|
|
782
805
|
init: function() {
|
@@ -1097,6 +1120,7 @@ var publicMethods = {
|
|
1097
1120
|
|
1098
1121
|
|
1099
1122
|
self.currItem = _getItemAt( _currentItemIndex );
|
1123
|
+
_renderMaxResolution = false;
|
1100
1124
|
|
1101
1125
|
_shout('beforeChange', _indexDiff);
|
1102
1126
|
|
@@ -1129,7 +1153,8 @@ var publicMethods = {
|
|
1129
1153
|
var prevItem = _getItemAt(_prevItemIndex);
|
1130
1154
|
if(prevItem.initialZoomLevel !== _currZoomLevel) {
|
1131
1155
|
_calculateItemSize(prevItem , _viewportSize );
|
1132
|
-
|
1156
|
+
_setImageSize(prevItem);
|
1157
|
+
_applyZoomPanToItem( prevItem );
|
1133
1158
|
}
|
1134
1159
|
|
1135
1160
|
}
|
@@ -1222,6 +1247,7 @@ var publicMethods = {
|
|
1222
1247
|
}
|
1223
1248
|
if(item && item.container) {
|
1224
1249
|
_calculateItemSize(item, _viewportSize);
|
1250
|
+
_setImageSize(item);
|
1225
1251
|
_applyZoomPanToItem( item );
|
1226
1252
|
}
|
1227
1253
|
|
@@ -1235,7 +1261,7 @@ var publicMethods = {
|
|
1235
1261
|
if(_currPanBounds) {
|
1236
1262
|
_panOffset.x = _currPanBounds.center.x;
|
1237
1263
|
_panOffset.y = _currPanBounds.center.y;
|
1238
|
-
_applyCurrentZoomPan();
|
1264
|
+
_applyCurrentZoomPan( true );
|
1239
1265
|
}
|
1240
1266
|
|
1241
1267
|
_shout('resize');
|
@@ -1288,7 +1314,7 @@ var publicMethods = {
|
|
1288
1314
|
updateFn(now);
|
1289
1315
|
}
|
1290
1316
|
|
1291
|
-
_applyCurrentZoomPan();
|
1317
|
+
_applyCurrentZoomPan( now === 1 );
|
1292
1318
|
};
|
1293
1319
|
|
1294
1320
|
if(speed) {
|
@@ -1730,12 +1756,19 @@ var _gestureStartTime,
|
|
1730
1756
|
if(_isDragging) {
|
1731
1757
|
var touchesList = _getTouchPoints(e);
|
1732
1758
|
if(!_direction && !_moved && !_isZooming) {
|
1733
|
-
|
1734
|
-
|
1735
|
-
|
1736
|
-
_direction =
|
1737
|
-
|
1759
|
+
|
1760
|
+
if(_mainScrollPos.x !== _slideSize.x * _currPositionIndex) {
|
1761
|
+
// if main scroll position is shifted – direction is always horizontal
|
1762
|
+
_direction = 'h';
|
1763
|
+
} else {
|
1764
|
+
var diff = Math.abs(touchesList[0].x - _currPoint.x) - Math.abs(touchesList[0].y - _currPoint.y);
|
1765
|
+
// check the direction of movement
|
1766
|
+
if(Math.abs(diff) >= DIRECTION_CHECK_OFFSET) {
|
1767
|
+
_direction = diff > 0 ? 'h' : 'v';
|
1768
|
+
_currentPoints = touchesList;
|
1769
|
+
}
|
1738
1770
|
}
|
1771
|
+
|
1739
1772
|
} else {
|
1740
1773
|
_currentPoints = touchesList;
|
1741
1774
|
}
|
@@ -1874,7 +1907,6 @@ var _gestureStartTime,
|
|
1874
1907
|
|
1875
1908
|
if(_direction === 'v' && _options.closeOnVerticalDrag) {
|
1876
1909
|
if(!_canPan()) {
|
1877
|
-
|
1878
1910
|
_currPanDist.y += delta.y;
|
1879
1911
|
_panOffset.y += delta.y;
|
1880
1912
|
|
@@ -2374,13 +2406,11 @@ var _gestureStartTime,
|
|
2374
2406
|
|
2375
2407
|
if(_opacityChanged) {
|
2376
2408
|
onUpdate = function(now) {
|
2377
|
-
|
2378
2409
|
_applyBgOpacity( (destOpacity - initialOpacity) * now + initialOpacity );
|
2379
|
-
|
2380
2410
|
};
|
2381
2411
|
}
|
2382
2412
|
|
2383
|
-
self.zoomTo(destZoomLevel, 0,
|
2413
|
+
self.zoomTo(destZoomLevel, 0, 200, framework.easing.cubic.out, onUpdate);
|
2384
2414
|
return true;
|
2385
2415
|
};
|
2386
2416
|
|
@@ -2773,38 +2803,20 @@ var _getItemAt,
|
|
2773
2803
|
return;
|
2774
2804
|
}
|
2775
2805
|
|
2776
|
-
var animate,
|
2777
|
-
isSwiping = self.isDragging() && !self.isZooming(),
|
2778
|
-
slideMightBeVisible = index === _currentItemIndex || self.isMainScrollAnimating() || isSwiping;
|
2779
|
-
|
2780
|
-
// fade in loaded image only when current holder is active, or might be visible
|
2781
|
-
if(!preventAnimation && (_likelyTouchDevice || _options.alwaysFadeIn) && slideMightBeVisible) {
|
2782
|
-
animate = true;
|
2783
|
-
}
|
2784
|
-
|
2785
2806
|
if(img) {
|
2786
|
-
if(animate) {
|
2787
|
-
img.style.opacity = 0;
|
2788
|
-
}
|
2789
2807
|
|
2790
2808
|
item.imageAppended = true;
|
2791
|
-
_setImageSize(
|
2809
|
+
_setImageSize(item, img);
|
2792
2810
|
|
2793
2811
|
baseDiv.appendChild(img);
|
2794
2812
|
|
2795
|
-
if(
|
2813
|
+
if(keepPlaceholder) {
|
2796
2814
|
setTimeout(function() {
|
2797
|
-
|
2798
|
-
|
2799
|
-
|
2800
|
-
// hide image placeholder "behind"
|
2801
|
-
if(item && item.loaded && item.placeholder) {
|
2802
|
-
item.placeholder.style.display = 'none';
|
2803
|
-
item.placeholder = null;
|
2804
|
-
}
|
2805
|
-
}, 500);
|
2815
|
+
if(item && item.loaded && item.placeholder) {
|
2816
|
+
item.placeholder.style.display = 'none';
|
2817
|
+
item.placeholder = null;
|
2806
2818
|
}
|
2807
|
-
},
|
2819
|
+
}, 500);
|
2808
2820
|
}
|
2809
2821
|
}
|
2810
2822
|
},
|
@@ -2849,7 +2861,23 @@ var _getItemAt,
|
|
2849
2861
|
|
2850
2862
|
}
|
2851
2863
|
},
|
2852
|
-
_setImageSize = function(
|
2864
|
+
_setImageSize = function(item, img, maxRes) {
|
2865
|
+
if(!item.src) {
|
2866
|
+
return;
|
2867
|
+
}
|
2868
|
+
|
2869
|
+
if(!img) {
|
2870
|
+
img = item.container.lastChild;
|
2871
|
+
}
|
2872
|
+
|
2873
|
+
var w = maxRes ? item.w : Math.round(item.w * item.fitRatio),
|
2874
|
+
h = maxRes ? item.h : Math.round(item.h * item.fitRatio);
|
2875
|
+
|
2876
|
+
if(item.placeholder && !item.loaded) {
|
2877
|
+
item.placeholder.style.width = w + 'px';
|
2878
|
+
item.placeholder.style.height = h + 'px';
|
2879
|
+
}
|
2880
|
+
|
2853
2881
|
img.style.width = w + 'px';
|
2854
2882
|
img.style.height = h + 'px';
|
2855
2883
|
},
|
@@ -2861,7 +2889,7 @@ var _getItemAt,
|
|
2861
2889
|
for(var i = 0; i < _imagesToAppendPool.length; i++) {
|
2862
2890
|
poolItem = _imagesToAppendPool[i];
|
2863
2891
|
if( poolItem.holder.index === poolItem.index ) {
|
2864
|
-
_appendImage(poolItem.index, poolItem.item, poolItem.baseDiv, poolItem.img);
|
2892
|
+
_appendImage(poolItem.index, poolItem.item, poolItem.baseDiv, poolItem.img, false, poolItem.clearPlaceholder);
|
2865
2893
|
}
|
2866
2894
|
}
|
2867
2895
|
_imagesToAppendPool = [];
|
@@ -3016,6 +3044,8 @@ _registerModule('Controller', {
|
|
3016
3044
|
}
|
3017
3045
|
|
3018
3046
|
_checkForError(item);
|
3047
|
+
|
3048
|
+
_calculateItemSize(item, _viewportSize);
|
3019
3049
|
|
3020
3050
|
if(item.src && !item.loadError && !item.loaded) {
|
3021
3051
|
|
@@ -3026,14 +3056,6 @@ _registerModule('Controller', {
|
|
3026
3056
|
return;
|
3027
3057
|
}
|
3028
3058
|
|
3029
|
-
// Apply hw-acceleration only after image is loaded.
|
3030
|
-
// This is webkit progressive image loading bugfix.
|
3031
|
-
// https://bugs.webkit.org/show_bug.cgi?id=108630
|
3032
|
-
// https://code.google.com/p/chromium/issues/detail?id=404547
|
3033
|
-
if(item.img) {
|
3034
|
-
item.img.style.webkitBackfaceVisibility = 'hidden';
|
3035
|
-
}
|
3036
|
-
|
3037
3059
|
// check if holder hasn't changed while image was loading
|
3038
3060
|
if(holder && holder.index === index ) {
|
3039
3061
|
if( _checkForError(item, true) ) {
|
@@ -3054,10 +3076,11 @@ _registerModule('Controller', {
|
|
3054
3076
|
baseDiv:baseDiv,
|
3055
3077
|
img:item.img,
|
3056
3078
|
index:index,
|
3057
|
-
holder:holder
|
3079
|
+
holder:holder,
|
3080
|
+
clearPlaceholder:true
|
3058
3081
|
});
|
3059
3082
|
} else {
|
3060
|
-
_appendImage(index, item, baseDiv, item.img, _mainScrollAnimating || _initialZoomRunning);
|
3083
|
+
_appendImage(index, item, baseDiv, item.img, _mainScrollAnimating || _initialZoomRunning, true);
|
3061
3084
|
}
|
3062
3085
|
} else {
|
3063
3086
|
// remove preloader & mini-img
|
@@ -3084,7 +3107,7 @@ _registerModule('Controller', {
|
|
3084
3107
|
placeholder.src = item.msrc;
|
3085
3108
|
}
|
3086
3109
|
|
3087
|
-
_setImageSize(
|
3110
|
+
_setImageSize(item, placeholder);
|
3088
3111
|
|
3089
3112
|
baseDiv.appendChild(placeholder);
|
3090
3113
|
item.placeholder = placeholder;
|
@@ -3117,14 +3140,12 @@ _registerModule('Controller', {
|
|
3117
3140
|
} else if(item.src && !item.loadError) {
|
3118
3141
|
// image object is created every time, due to bugs of image loading & delay when switching images
|
3119
3142
|
img = framework.createEl('pswp__img', 'img');
|
3120
|
-
img.style.webkitBackfaceVisibility = 'hidden';
|
3121
3143
|
img.style.opacity = 1;
|
3122
3144
|
img.src = item.src;
|
3123
|
-
_setImageSize(
|
3145
|
+
_setImageSize(item, img);
|
3124
3146
|
_appendImage(index, item, baseDiv, img, true);
|
3125
3147
|
}
|
3126
3148
|
|
3127
|
-
_calculateItemSize(item, _viewportSize);
|
3128
3149
|
|
3129
3150
|
if(!_initialContentSet && index === _currentItemIndex) {
|
3130
3151
|
_currZoomElementStyle = baseDiv.style;
|
@@ -3327,9 +3348,9 @@ _registerModule('DesktopZoom', {
|
|
3327
3348
|
if(_currZoomLevel <= self.currItem.fitRatio) {
|
3328
3349
|
if( _options.modal ) {
|
3329
3350
|
|
3330
|
-
if (
|
3351
|
+
if (!_options.closeOnScroll || _numAnimations || _isDragging) {
|
3331
3352
|
e.preventDefault();
|
3332
|
-
} else if(
|
3353
|
+
} else if(_transformKey && Math.abs(e.deltaY) > 2) {
|
3333
3354
|
// close PhotoSwipe
|
3334
3355
|
// if browser supports transforms & scroll changed enough
|
3335
3356
|
_closedByScroll = true;
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: photoswipe-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0
|
4
|
+
version: 4.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kristaps Karlsons
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-07-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -77,9 +77,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
77
|
version: '0'
|
78
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: '0'
|
83
83
|
requirements: []
|
84
84
|
rubyforge_project:
|
85
85
|
rubygems_version: 2.4.6
|
@@ -87,3 +87,4 @@ signing_key:
|
|
87
87
|
specification_version: 4
|
88
88
|
summary: Adds PhotoSwipe to your Rails asset pipeline
|
89
89
|
test_files: []
|
90
|
+
has_rdoc:
|