PageSourceSearch

https://www.flughafen-sylt.de/_assets/6020ad64298e304d8b844c8dc69c472e/JavaScript/sliders.js?1776684349

js flughafen-sylt.de collected 2026-10-02 10:02:45 UTC 13,534 bytes, 426 lines download raw bytes

1$(document).ready(function () {
2
3    function destroySlider(slider) {
4        if (slider !== undefined && typeof slider.destroy === 'function') {
5            slider.destroy();
6        }
7    }
8
9    function refreshSlider(slider) {
10        if (slider !== undefined && slider.refresh !== null) {
11            slider.refresh();
12        }
13    }
14
15    function rebuildSlider(slider) {
16        if (slider !== undefined && slider.rebuild !== null) {
17            return slider.rebuild();
18        }
19    }
20
21
22    let getBreakpoint = function (breakpointslist) {
23        let currentBreakpoint = window.getComputedStyle(document.body, ':before').content.replace(/\"/g, '');
24        let breakpoints = breakpointslist.split(',');
25        return (breakpoints.indexOf(currentBreakpoint) != -1) ? true : false;
26    }
27
28    // Slider Settings
29    function getVerticalSettingsNewsSlider(id) {
30        return {
31            container: '#' + id,
32            mode: 'carousel',
33            autoplay: 0,
34            autoplayTimeout: 6000,
35            items: 2,
36            autoplayButtonOutput: 0,
37            preventScrollOnTouch: 'auto',
38            speed: 1200,
39            controls: 0,
40            loop: 1,
41            lazyload: 1,
42            nav: 1,
43            axis: 'vertical',
44            touch: true,
45            gutter: 30,
46            // fixedWidth: 282,
47            navPosition: 'bottom',
48            navAsThumbnails: false,
49            freezable: false,
50            center: false,
51            // autoHeight: false,
52        };
53    }
54
55    function getHorizontalSettingsNewsSlider(id) {
56        return {
57            container: '#' + id,
58            mode: 'carousel',
59            autoplay: 0,
60            autoplayTimeout: 6000,
61            items: 1,
62            autoplayButtonOutput: 0,
63            preventScrollOnTouch: 'auto',
64            speed: 1200,
65            controls: 0,
66            loop: 1,
67            lazyload: 1,
68            nav: 1,
69            gutter: 30,
70            // fixedWidth: 282,
71            axis: 'horizontal',
72            navPosition: 'bottom',
73            navAsThumbnails: false,
74            freezable: false,
75            touch: true,
76            center: true,
77            responsive: {
78                1140: {
79                    items: 2,
80                    // fixedWidth: 453,
81                    // center: true
82                },
83                992: {
84                    items: 2,
85                    // fixedWidth: 432,
86                    center: false,
87                },
88                // 720: {
89                //     items: 2,
90                // },
91                // 540: {
92                //     items: 1,
93                //     center: false
94                // },
95            },
96        }
97    }
98
99    function airlineSliderSettings(id) {
100        return {
101            container: '#' + id,
102            mode: 'carousel',
103            autoplay: 0,
104            autoplayTimeout: 6000,
105            items: 1,
106            autoplayButtonOutput: 0,
107            preventScrollOnTouch: 'auto',
108            speed: 1200,
109            controls: 1,
110            controlsContainer: '.custom-controls-airline',
111            loop: 1,
112            mouseDrag: true,
113            lazyload: 1,
114            nav: 1,
115            navPosition: 'bottom',
116            navAsThumbnails: true,
117            freezable: false,
118            gutter: 49,
119            touch: true,
120            center: true,
121            // fixedWidth: 233,
122            responsive: {
123                1140: {
124                    items: 5,
125                    gutter: 97,
126                    fixedWidth: 290,
127                    center: true,
128                    edgePadding: 0,
129                },
130                992: {
131                    items: 3,
132                    gutter: 97,
133                    fixedWidth: 290,
134                    center: true,
135                },
136                720: {
137                    items: 1,
138                    gutter: 85,
139                    fixedWidth: 245,
140                    // center: true
141                    edgePadding: 55
142                },
143                540: {
144                    items: 2,
145                    gutter: 78,
146                    fixedWidth: 300,
147                    center: false,
148                    edgePadding: 89,
149                },
150            },
151        }
152    }
153
154    function serviceSliderSettings(id) {
155        return {
156            container: '#' + id,
157            mode: 'carousel',
158            autoplay: 0,
159            autoplayTimeout: 6000,
160            items: 3,
161            autoplayButtonOutput: 0,
162            preventScrollOnTouch: 'auto',
163            speed: 1200,
164            controls: 1,
165            controlsContainer: '.custom-controls-service',
166            loop: 1,
167            lazyload: 1,
168            nav: 1,
169            mouseDrag: true,
170            gutter: 16,
171            navPosition: 'bottom',
172            navAsThumbnails: true,
173            fixedWidth: 190,
174            center: true,
175            touch: true,
176            freezable: false,
177            responsive: {
178                1140: {
179                    items: 5,
180                    gutter: 30,
181                    fixedWidth: 358,
182
183                },
184                992: {
185                    items: 5,
186                    gutter: 24,
187                    fixedWidth: 282
188
189                },
190                720: {
191                    items: 5
192                },
193                540: {
194                    items: 3
195                },
196            },
197        }
198    }
199
200    function h2FullBgTeaserSliderService(id) {
201        return {
202            container: '#' + id,
203            mode: 'carousel',
204            autoplay: 0,
205            autoplayTimeout: 6000,
206            items: 1,
207            autoplayButtonOutput: 0,
208            preventScrollOnTouch: 'auto',
209            speed: 1200,
210            controls: 0,
211            loop: 1,
212            lazyload: 1,
213            nav: 1,
214            // axis:'vertical',
215            // gutter: 30,
216            navPosition: 'bottom',
217            navAsThumbnails: true,
218            freezable: true,
219            touch: true,
220            viewportMax: 100,
221            // autoWidth: true,
222            // center: true,
223        }
224    }
225
226    function h2HeaderTeaserSliderSettings(id) {
227        return {
228            container: '#' + id,
229            mode: 'carousel',
230            autoplay: 0,
231            autoplayTimeout: 6000,
232            items: 1,
233            autoplayButtonOutput: 0,
234            preventScrollOnTouch: 'auto',
235            speed: 1200,
236            controls: 1,
237            controlsContainer: '.custom-controls-header-slider',
238            loop: 0,
239            lazyload: 1,
240            nav: 1,
241            navPosition: 'bottom',
242            navAsThumbnails: true,
243            freezable: true,
244            touch: true,
245            // viewportMax: 100,
246        }
247    }
248
249    /****************** Tiny Slider *******************/
250    /**  https://github.com/ganlanyuan/tiny-slider   **/
251
252    // Slider 1 on Homepage
253    if (exists('.imageSlider')) {
254        let imageSlider = tns({
255            container: '.imageSlider',
256            mode: 'carousel',
257            autoplay: 0,
258            autoplayTimeout: 6000,
259            items: 1,
260            autoplayButtonOutput: 0,
261            preventScrollOnTouch: 'auto',
262            speed: 1200,
263            controls: 0,
264            loop: 0,
265            lazyload: 1,
266            nav: 1,
267        });
268    }
269
270
271
272    // Airline Teaser Slider
273    if (exists('.airline-slider')) {
274        let airlineSlider = $('.airline-slider');
275        airlineSlider.each(
276            function () {
277                let id = $(this).attr('id');
278                let airlineSliderOptions = tns(airlineSliderSettings(id));
279
280                function changeOpacity() {
281                    let currentSliderInfo = airlineSliderOptions.getInfo();
282                    let airlineActiveSlide = currentSliderInfo.slideItems[currentSliderInfo.index];
283                    let prevSlide = currentSliderInfo.slideItems[currentSliderInfo.index - 1];
284                    let nextSlide = currentSliderInfo.slideItems[currentSliderInfo.index + 1];
285
286                    // remove all opacity classes
287                    let allVisibleAirlineSlides = currentSliderInfo.container.getElementsByClassName('tns-slide-active');
288                    for (let i = 0; i < allVisibleAirlineSlides.length; i++) {
289                        allVisibleAirlineSlides[i].classList.remove('full-opacity');
290                    }
291                    // add opacity class
292                    if ($(document).width() >= 1200) {
293                        airlineActiveSlide.classList.add('full-opacity');
294                        prevSlide.classList.add('full-opacity');
295                        nextSlide.classList.add('full-opacity');
296
297                    } else {
298                        airlineActiveSlide.classList.add('full-opacity');
299                    }
300                }
301
302                changeOpacity();
303
304                function addEvents() {
305                    airlineSliderOptions.events.on('indexChanged', function () {
306                        changeOpacity();
307                    });
308                }
309
310                addEvents();
311
312                $(window).on('resize', function () {
313                    destroySlider(airlineSliderOptions);
314                    airlineSliderOptions = rebuildSlider(airlineSliderOptions);
315                    changeOpacity();
316                    addEvents();
317                });
318            });
319
320        airlineSlider.each(function () {
321            let cards = $(this).find('.slider-card');
322            cards.on('click', function () {
323                let linkBtn = $(this).find('.link-button')[0];
324                if (linkBtn) {
325                    linkBtn.click();
326                }
327            })
328        })
329    }
330
331    if (exists('.service-slider')) {
332        let serviceSlider = $('.service-slider');
333        serviceSlider.each(
334            function () {
335                let id = $(this).attr('id');
336                let myServiceSlider = tns(serviceSliderSettings(id)
336);
337
338                function changeOpacity() {
339                    let currentInfo = myServiceSlider.getInfo();
340                    let activeSlide = currentInfo.slideItems[currentInfo.index];
341                    let prevSlide = currentInfo.slideItems[currentInfo.index - 1];
342                    let nextSlide = currentInfo.slideItems[currentInfo.index + 1];
343                    let prevprevSlide = currentInfo.slideItems[currentInfo.index - 2];
344                    let nextnextSlide = currentInfo.slideItems[currentInfo.index + 2];
345
346                    // remove all opacity classes
347                    let allVisibleSlides = currentInfo.container.getElementsByClassName('tns-slide-active');
348                    for (let i = 0; i < allVisibleSlides.length; i++) {
349                        allVisibleSlides[i].classList.remove('full-opacity');
350                        allVisibleSlides[i].classList.remove('half-opacity');
351                        allVisibleSlides[i].classList.remove('quarter-opacity');
352                    }
353                    // add opacity class
354                    if ($(document).width() >= 1200) {
355                        activeSlide.classList.add('full-opacity');
356                        prevSlide.classList.add('half-opacity');
357                        nextSlide.classList.add('half-opacity');
358                        nextnextSlide.classList.add('quarter-opacity');
359                        prevprevSlide.classList.add('quarter-opacity');
360
361                    } else {
362                        activeSlide.classList.add('full-opacity');
363                    }
364                }
365
366                changeOpacity();
367
368                function addEvents() {
369                    myServiceSlider.events.on('indexChanged', function () {
370                        changeOpacity();
371                    });
372                }
373
374                addEvents();
375
376                $(window).on('resize', function () {
377                    myServiceSlider.destroy();
378                    myServiceSlider = rebuildSlider(myServiceSlider);
379                    changeOpacity();
380                    addEvents();
381                });
382
383            }
384        );
385    }
386
387    if (exists('.h2-news-slider')) {
388        let newsSlider = $('.h2-news-slider');
389        let id = $(newsSlider[0]).attr('id');
390        let newSliderHorizontal;
391        if (getBreakpoint('md,sm')) {
392            newSliderHorizontal = tns(getVerticalSettingsNewsSlider(id));
393        } else {
394            newSliderHorizontal = tns(getHorizontalSettingsNewsSlider(id));
395        }
396
397        $(window).on('resize', function () {
398            destroySlider(newSliderHorizontal);
399            if (getBreakpoint('md,sm')) {
400                newSliderHorizontal = tns(getVerticalSettingsNewsSlider(id));
401            } else {
402                newSliderHorizontal = tns(getHorizontalSettingsNewsSlider(id));
403            }
404        });
405    }
406
407    if (exists('.h2-fullbg-teaser-slider')) {
408        let h2fullbgteaserSlider = $('.h2-fullbg-teaser-slider');
409        h2fullbgteaserSlider.each(
410            function () {
411                let id = $(this).attr('id');
412                let myslider = tns(h2FullBgTeaserSliderService(id));
413            }
414        );
415    }
416
417    if (exists('.h2-header-teaser-slider')) {
418        let h2headerTeaserSlider = $('.h2-header-teaser-slider');
419        h2headerTeaserSlider.each(
420            function () {
421                let id = $(this).attr('id');
422                let slider = tns(h2HeaderTeaserSliderSettings(id));
423            }
424        );
425    }
426});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.