Browse code

Remove old version 5

Benjamin Roth authored on14/03/2021 15:27:00
Showing1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,227 +0,0 @@
1
-import $ from '../../utils/dom';
2
-import Utils from '../../utils/utils';
3
-
4
-const Lazy = {
5
-  loadInSlide(index, loadInDuplicate = true) {
6
-    const swiper = this;
7
-    const params = swiper.params.lazy;
8
-    if (typeof index === 'undefined') return;
9
-    if (swiper.slides.length === 0) return;
10
-    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
11
-
12
-    const $slideEl = isVirtual
13
-      ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index="${index}"]`)
14
-      : swiper.slides.eq(index);
15
-
16
-    let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);
17
-    if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {
18
-      $images = $images.add($slideEl[0]);
19
-    }
20
-    if ($images.length === 0) return;
21
-
22
-    $images.each((imageIndex, imageEl) => {
23
-      const $imageEl = $(imageEl);
24
-      $imageEl.addClass(params.loadingClass);
25
-
26
-      const background = $imageEl.attr('data-background');
27
-      const src = $imageEl.attr('data-src');
28
-      const srcset = $imageEl.attr('data-srcset');
29
-      const sizes = $imageEl.attr('data-sizes');
30
-      const $pictureEl = $imageEl.parent('picture');
31
-
32
-      swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {
33
-        if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;
34
-        if (background) {
35
-          $imageEl.css('background-image', `url("${background}")`);
36
-          $imageEl.removeAttr('data-background');
37
-        } else {
38
-          if (srcset) {
39
-            $imageEl.attr('srcset', srcset);
40
-            $imageEl.removeAttr('data-srcset');
41
-          }
42
-          if (sizes) {
43
-            $imageEl.attr('sizes', sizes);
44
-            $imageEl.removeAttr('data-sizes');
45
-          }
46
-          if ($pictureEl.length) {
47
-            $pictureEl.children('source').each((sourceIndex, sourceEl) => {
48
-              const $source = $(sourceEl);
49
-
50
-              if ($source.attr('data-srcset')) {
51
-                $source.attr('srcset', $source.attr('data-srcset'));
52
-                $source.removeAttr('data-srcset');
53
-              }
54
-            });
55
-          }
56
-          if (src) {
57
-            $imageEl.attr('src', src);
58
-            $imageEl.removeAttr('data-src');
59
-          }
60
-        }
61
-
62
-        $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);
63
-        $slideEl.find(`.${params.preloaderClass}`).remove();
64
-        if (swiper.params.loop && loadInDuplicate) {
65
-          const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');
66
-          if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {
67
-            const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index="${slideOriginalIndex}"]:not(.${swiper.params.slideDuplicateClass})`);
68
-            swiper.lazy.loadInSlide(originalSlide.index(), false);
69
-          } else {
70
-            const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index="${slideOriginalIndex}"]`);
71
-            swiper.lazy.loadInSlide(duplicatedSlide.index(), false);
72
-          }
73
-        }
74
-        swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);
75
-        if (swiper.params.autoHeight) {
76
-          swiper.updateAutoHeight();
77
-        }
78
-      });
79
-
80
-      swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);
81
-    });
82
-  },
83
-  load() {
84
-    const swiper = this;
85
-    const {
86
-      $wrapperEl, params: swiperParams, slides, activeIndex,
87
-    } = swiper;
88
-    const isVirtual = swiper.virtual && swiperParams.virtual.enabled;
89
-    const params = swiperParams.lazy;
90
-
91
-    let slidesPerView = swiperParams.slidesPerView;
92
-    if (slidesPerView === 'auto') {
93
-      slidesPerView = 0;
94
-    }
95
-
96
-    function slideExist(index) {
97
-      if (isVirtual) {
98
-        if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index="${index}"]`).length) {
99
-          return true;
100
-        }
101
-      } else if (slides[index]) return true;
102
-      return false;
103
-    }
104
-
105
-    function slideIndex(slideEl) {
106
-      if (isVirtual) {
107
-        return $(slideEl).attr('data-swiper-slide-index');
108
-      }
109
-      return $(slideEl).index();
110
-    }
111
-
112
-    if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;
113
-    if (swiper.params.watchSlidesVisibility) {
114
-      $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {
115
-        const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();
116
-        swiper.lazy.loadInSlide(index);
117
-      });
118
-    } else if (slidesPerView > 1) {
119
-      for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {
120
-        if (slideExist(i)) swiper.lazy.loadInSlide(i);
121
-      }
122
-    } else {
123
-      swiper.lazy.loadInSlide(activeIndex);
124
-    }
125
-    if (params.loadPrevNext) {
126
-      if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {
127
-        const amount = params.loadPrevNextAmount;
128
-        const spv = slidesPerView;
129
-        const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);
130
-        const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);
131
-        // Next Slides
132
-        for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {
133
-          if (slideExist(i)) swiper.lazy.loadInSlide(i);
134
-        }
135
-        // Prev Slides
136
-        for (let i = minIndex; i < activeIndex; i += 1) {
137
-          if (slideExist(i)) swiper.lazy.loadInSlide(i);
138
-        }
139
-      } else {
140
-        const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);
141
-        if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));
142
-
143
-        const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);
144
-        if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));
145
-      }
146
-    }
147
-  },
148
-};
149
-
150
-export default {
151
-  name: 'lazy',
152
-  params: {
153
-    lazy: {
154
-      enabled: false,
155
-      loadPrevNext: false,
156
-      loadPrevNextAmount: 1,
157
-      loadOnTransitionStart: false,
158
-
159
-      elementClass: 'swiper-lazy',
160
-      loadingClass: 'swiper-lazy-loading',
161
-      loadedClass: 'swiper-lazy-loaded',
162
-      preloaderClass: 'swiper-lazy-preloader',
163
-    },
164
-  },
165
-  create() {
166
-    const swiper = this;
167
-    Utils.extend(swiper, {
168
-      lazy: {
169
-        initialImageLoaded: false,
170
-        load: Lazy.load.bind(swiper),
171
-        loadInSlide: Lazy.loadInSlide.bind(swiper),
172
-      },
173
-    });
174
-  },
175
-  on: {
176
-    beforeInit() {
177
-      const swiper = this;
178
-      if (swiper.params.lazy.enabled && swiper.params.preloadImages) {
179
-        swiper.params.preloadImages = false;
180
-      }
181
-    },
182
-    init() {
183
-      const swiper = this;
184
-      if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {
185
-        swiper.lazy.load();
186
-      }
187
-    },
188
-    scroll() {
189
-      const swiper = this;
190
-      if (swiper.params.freeMode && !swiper.params.freeModeSticky) {
191
-        swiper.lazy.load();
192
-      }
193
-    },
194
-    resize() {
195
-      const swiper = this;
196
-      if (swiper.params.lazy.enabled) {
197
-        swiper.lazy.load();
198
-      }
199
-    },
200
-    scrollbarDragMove() {
201
-      const swiper = this;
202
-      if (swiper.params.lazy.enabled) {
203
-        swiper.lazy.load();
204
-      }
205
-    },
206
-    transitionStart() {
207
-      const swiper = this;
208
-      if (swiper.params.lazy.enabled) {
209
-        if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {
210
-          swiper.lazy.load();
211
-        }
212
-      }
213
-    },
214
-    transitionEnd() {
215
-      const swiper = this;
216
-      if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {
217
-        swiper.lazy.load();
218
-      }
219
-    },
220
-    slideChange() {
221
-      const swiper = this;
222
-      if (swiper.params.lazy.enabled && swiper.params.cssMode) {
223
-        swiper.lazy.load();
224
-      }
225
-    },
226
-  },
227
-};
Browse code

Initial commit

Benjamin Roth authored on19/05/2020 21:59:44
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,227 @@
1
+import $ from '../../utils/dom';
2
+import Utils from '../../utils/utils';
3
+
4
+const Lazy = {
5
+  loadInSlide(index, loadInDuplicate = true) {
6
+    const swiper = this;
7
+    const params = swiper.params.lazy;
8
+    if (typeof index === 'undefined') return;
9
+    if (swiper.slides.length === 0) return;
10
+    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
11
+
12
+    const $slideEl = isVirtual
13
+      ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index="${index}"]`)
14
+      : swiper.slides.eq(index);
15
+
16
+    let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);
17
+    if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {
18
+      $images = $images.add($slideEl[0]);
19
+    }
20
+    if ($images.length === 0) return;
21
+
22
+    $images.each((imageIndex, imageEl) => {
23
+      const $imageEl = $(imageEl);
24
+      $imageEl.addClass(params.loadingClass);
25
+
26
+      const background = $imageEl.attr('data-background');
27
+      const src = $imageEl.attr('data-src');
28
+      const srcset = $imageEl.attr('data-srcset');
29
+      const sizes = $imageEl.attr('data-sizes');
30
+      const $pictureEl = $imageEl.parent('picture');
31
+
32
+      swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {
33
+        if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;
34
+        if (background) {
35
+          $imageEl.css('background-image', `url("${background}")`);
36
+          $imageEl.removeAttr('data-background');
37
+        } else {
38
+          if (srcset) {
39
+            $imageEl.attr('srcset', srcset);
40
+            $imageEl.removeAttr('data-srcset');
41
+          }
42
+          if (sizes) {
43
+            $imageEl.attr('sizes', sizes);
44
+            $imageEl.removeAttr('data-sizes');
45
+          }
46
+          if ($pictureEl.length) {
47
+            $pictureEl.children('source').each((sourceIndex, sourceEl) => {
48
+              const $source = $(sourceEl);
49
+
50
+              if ($source.attr('data-srcset')) {
51
+                $source.attr('srcset', $source.attr('data-srcset'));
52
+                $source.removeAttr('data-srcset');
53
+              }
54
+            });
55
+          }
56
+          if (src) {
57
+            $imageEl.attr('src', src);
58
+            $imageEl.removeAttr('data-src');
59
+          }
60
+        }
61
+
62
+        $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);
63
+        $slideEl.find(`.${params.preloaderClass}`).remove();
64
+        if (swiper.params.loop && loadInDuplicate) {
65
+          const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');
66
+          if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {
67
+            const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index="${slideOriginalIndex}"]:not(.${swiper.params.slideDuplicateClass})`);
68
+            swiper.lazy.loadInSlide(originalSlide.index(), false);
69
+          } else {
70
+            const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index="${slideOriginalIndex}"]`);
71
+            swiper.lazy.loadInSlide(duplicatedSlide.index(), false);
72
+          }
73
+        }
74
+        swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);
75
+        if (swiper.params.autoHeight) {
76
+          swiper.updateAutoHeight();
77
+        }
78
+      });
79
+
80
+      swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);
81
+    });
82
+  },
83
+  load() {
84
+    const swiper = this;
85
+    const {
86
+      $wrapperEl, params: swiperParams, slides, activeIndex,
87
+    } = swiper;
88
+    const isVirtual = swiper.virtual && swiperParams.virtual.enabled;
89
+    const params = swiperParams.lazy;
90
+
91
+    let slidesPerView = swiperParams.slidesPerView;
92
+    if (slidesPerView === 'auto') {
93
+      slidesPerView = 0;
94
+    }
95
+
96
+    function slideExist(index) {
97
+      if (isVirtual) {
98
+        if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index="${index}"]`).length) {
99
+          return true;
100
+        }
101
+      } else if (slides[index]) return true;
102
+      return false;
103
+    }
104
+
105
+    function slideIndex(slideEl) {
106
+      if (isVirtual) {
107
+        return $(slideEl).attr('data-swiper-slide-index');
108
+      }
109
+      return $(slideEl).index();
110
+    }
111
+
112
+    if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;
113
+    if (swiper.params.watchSlidesVisibility) {
114
+      $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {
115
+        const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();
116
+        swiper.lazy.loadInSlide(index);
117
+      });
118
+    } else if (slidesPerView > 1) {
119
+      for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {
120
+        if (slideExist(i)) swiper.lazy.loadInSlide(i);
121
+      }
122
+    } else {
123
+      swiper.lazy.loadInSlide(activeIndex);
124
+    }
125
+    if (params.loadPrevNext) {
126
+      if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {
127
+        const amount = params.loadPrevNextAmount;
128
+        const spv = slidesPerView;
129
+        const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);
130
+        const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);
131
+        // Next Slides
132
+        for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {
133
+          if (slideExist(i)) swiper.lazy.loadInSlide(i);
134
+        }
135
+        // Prev Slides
136
+        for (let i = minIndex; i < activeIndex; i += 1) {
137
+          if (slideExist(i)) swiper.lazy.loadInSlide(i);
138
+        }
139
+      } else {
140
+        const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);
141
+        if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));
142
+
143
+        const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);
144
+        if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));
145
+      }
146
+    }
147
+  },
148
+};
149
+
150
+export default {
151
+  name: 'lazy',
152
+  params: {
153
+    lazy: {
154
+      enabled: false,
155
+      loadPrevNext: false,
156
+      loadPrevNextAmount: 1,
157
+      loadOnTransitionStart: false,
158
+
159
+      elementClass: 'swiper-lazy',
160
+      loadingClass: 'swiper-lazy-loading',
161
+      loadedClass: 'swiper-lazy-loaded',
162
+      preloaderClass: 'swiper-lazy-preloader',
163
+    },
164
+  },
165
+  create() {
166
+    const swiper = this;
167
+    Utils.extend(swiper, {
168
+      lazy: {
169
+        initialImageLoaded: false,
170
+        load: Lazy.load.bind(swiper),
171
+        loadInSlide: Lazy.loadInSlide.bind(swiper),
172
+      },
173
+    });
174
+  },
175
+  on: {
176
+    beforeInit() {
177
+      const swiper = this;
178
+      if (swiper.params.lazy.enabled && swiper.params.preloadImages) {
179
+        swiper.params.preloadImages = false;
180
+      }
181
+    },
182
+    init() {
183
+      const swiper = this;
184
+      if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {
185
+        swiper.lazy.load();
186
+      }
187
+    },
188
+    scroll() {
189
+      const swiper = this;
190
+      if (swiper.params.freeMode && !swiper.params.freeModeSticky) {
191
+        swiper.lazy.load();
192
+      }
193
+    },
194
+    resize() {
195
+      const swiper = this;
196
+      if (swiper.params.lazy.enabled) {
197
+        swiper.lazy.load();
198
+      }
199
+    },
200
+    scrollbarDragMove() {
201
+      const swiper = this;
202
+      if (swiper.params.lazy.enabled) {
203
+        swiper.lazy.load();
204
+      }
205
+    },
206
+    transitionStart() {
207
+      const swiper = this;
208
+      if (swiper.params.lazy.enabled) {
209
+        if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {
210
+          swiper.lazy.load();
211
+        }
212
+      }
213
+    },
214
+    transitionEnd() {
215
+      const swiper = this;
216
+      if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {
217
+        swiper.lazy.load();
218
+      }
219
+    },
220
+    slideChange() {
221
+      const swiper = this;
222
+      if (swiper.params.lazy.enabled && swiper.params.cssMode) {
223
+        swiper.lazy.load();
224
+      }
225
+    },
226
+  },
227
+};