PageSourceSearch

https://hotel-welcomeinn.ch/wp-content/themes/achesa/assets/js/swiper.js?ver=1791491456

js hotel-welcomeinn.ch collected 2026-10-08 20:31:14 UTC 11,209 bytes, 380 lines download raw bytes

1var $doc = jQuery(document),
2$body = jQuery("body");
3
4/* OS Swiper: Box Slider */
5var boxSwiper = new Swiper(".boxSwiper", {
6  
7    slidesPerView: 1,
8    spaceBetween: 50,
9    navigation: {
10        nextEl: ".os-boxslider-controller-next",
11        prevEl: ".os-boxslider-controller-prev",
12    },
13    breakpoints: {
14        767: {
15            slidesPerView: 3,
16        },
17        1000: {
18            slidesPerView: 4,
19        }
20    }
21});
22
23jQuery(".roomslide").on('click', 'a.ausstattung-caller, a.ausstattung-hide', function(swipereventcaller){
24  swipereventcaller.preventDefault();
25  jQuery(this).closest(".roomslide").toggleClass("viewdetails");
26  return false;
27});
28
29
30
31$doc.ready(function($) {
32      
33      if ( jQuery( ".osRoomsSlider" ).length ) {
34        
35            /* OS Swiper: Room Slider */
36            var roomsSwiper = new Swiper(".osRoomsSlider", {
37                speed: 1000,
38                    autoHeight: true,
39                    slideClass: "roomslide",
40                    navigation: {
41                    nextEl: ".rooms-slider-next",
42                    prevEl: ".rooms-slider-prev",
43                },
44            });
45            
46      }
47      
48});
49
50
51/* OS Swiper: Switch Slider Content */
52      var introSwitcherSwiperContent = new Swiper(".switchercontent", {
53        spaceBetween: 30,
54        autoHeight: true,
55        speed: 1200,
56        slidesPerView: 'auto',
57        pagination: {
58          el: ".swiper-pagination-switcher",
59          clickable: true,
60        }
61      });
62      
63      introSwitcherSwiperContent.on('slideChange', function () {
64          var activeSlide = introSwitcherSwiperContent.activeIndex;
65          
66          var realIndexOS = introSwitcherSwiperContent.realIndex;
67          jQuery(".os-slide-controller-item").removeClass("os-active-helper");
68          introSwitcherSwiperControl.slides[activeSlide].classList.add("os-active-helper");
69          introSwitcherSwiperControl.slideTo(activeSlide);
70          
71      });
72
73/* OS Swiper: Switch Slider Controller Labels */
74      
75      var introSwitcherSwiperControl = new Swiper(".switchercontrolmenu", {
76          spaceBetween: 30,
77          slideToClickedSlide: true,
78          watchSlidesProgress: true,
79          slideActiveClass: "os-slide-active-controller",
80          slideClass: "os-slide-controller-item",
81          preventClicksPropagation: true,
82          slidesPerView: 'auto',
83          navigation: {
84          nextEl: ".swiper-button-next-switcher-control-menu",
85          prevEl: ".swiper-button-prev-switcher-control-menu",
86          },
87          pagination: {
88          el: ".swiper-pagination-controller",
89          clickable: true,
90          },
91          
92          on: {
93          init: function () {
94          this.slides[0].classList.add("os-active-helper");
95          },
96          }
97          
98      });
99
100   
101   
102   //Galerie
103   var osDefaultGallery = new Swiper(".swiperGalerie", {
104     slidesPerView: 1, // Mobile
105     spaceBetween: 0,
106     navigation: {
107       nextEl: ".swiper-button-next",
108       prevEl: ".swiper-button-prev",
109     },
110     breakpoints: {
111       // wenn Viewport größer als 768px (Desktop)
112       768: {
113         slidesPerView: 2,
114       },
115     },
116   });
117   
118   
119   //Galerie Single View
120   var osDefaultGallerySingle = new Swiper(".swiperGalerieSingleImage", {
121     spaceBetween: 0,
122     centeredSlides: true,
123     autoplay: {
124       delay: 4500,
125       disableOnInteraction: false,
126     },
127     autoHeight: true,
128     speed: 1000,
129     navigation: {
130     nextEl: ".swiper-singleGalleryNext",
131     prevEl: ".swiper-singleGalleryPrev",
132     },
133   });
134   
135
136
137
138   
139      
140      jQuery(".switchercontrolmenu").on('click', 'a.swiperController', function(swiperevent){
141        
142        var dataindex = jQuery(this).data("index");
143        swiperevent.preventDefault();
144        introSwitcherSwiperContent.slideTo(dataindex);
145        return false;
146        
147      });
148
149
150
151/* Switcher Slider - Wonach suchst du */
152$.fn.isInViewport = function () {
153  var elementTop = $(this).offset().top;
154  var elementBottom = elementTop + $(this).outerHeight();
155  var viewportTop = $(window).scrollTop();
156  var viewportBottom = viewportTop + $(window).height();
157  return elementBottom > viewportTop && elementTop < viewportBottom;
158};
159
160
161// $(window).scroll(function () {
162//   $('.switcherSwiper').each(function (i, el) {
163//     if ($(this).isInViewport()) {
164//       $(this).addClass('inviewport');
165//       mySwiper.params.autoplay.disableOnInteraction = false; // Aktiviere Autoplay bei Interaktion nicht deaktivieren
166//       mySwiper.autoplay.start(); // Starte das Autoplay
167//       mySwiper.update(); // Aktualisiere Swiper
168//     } else {
169//       if ($(this).hasClass('inviewport')) {
170//         $(this).removeClass('inviewport');
171//         mySwiper.autoplay.stop(); // Stoppe das Autoplay
172//         mySwiper.params.autoplay.disableOnInteraction = true; // Deaktiviere Autoplay bei Interaktion
173//         mySwiper.update(); // Aktualisiere Swiper
174//       }
175//     }
176//   });
177// });
178
179// 
180// $(document).ready(function() {
181//   // Generiere das Menü basierend auf den Slide-Attributen
182//   var menuItems = '';
183//   $('.switcherSwiper .swiper-slide').each(function(index) {
184//     var slideLabel = $(this).data('menu-label');
185//     menuItems += '<div class="slider-dot" data-slide="' + index + '">' + slideLabel + '</div>';
186//   });
187//   $('.swiper-menu').html(menuItems);
188// 
189//   // Füge der ersten Slider-Dot-Klasse die 'active'-Klasse hinzu
190//   $('.slider-dot:first').addClass('active');
191// 
192//   // Aktualisiere das Klickereignis für Slider-Dots
193//   $('.slider-dot').click(function() {
194//     var slideIndex = $(this).data('slide');
195//     mySwiper.slideTo(slideIndex);
196//   });
197// });
198// 
199// mySwiper.on('slideChange', function() {
200//   var activeSlideIndex = mySwiper.realIndex;
201// 
202//   // Aktive Klasse hinzufügen/entfernen
203//   $('.slider-dot').removeClass('active');
204//   $('.slider-dot[data-slide="' + activeSlideIndex + '"]').addClass('active');
205// });
206
207
208
209
210
211/* Speiskarte */
212// Initialisieren des Swipers für Tab-Buttons
213var swiperTabs = new Swiper('.swiper-container-tabs', {
214    effect: 'slide',
215	autoHeight: true,
216    navigation: {
217        nextEl: '.swiper-button-next',
218        prevEl: '.swiper-button-prev',
219    },
220	
221	
222    on: {
223        slideChange: function() {
224            var currentIndex = this.activeIndex;
225
226            // Gib den Wert von currentIndex in der Konsole aus
227            console.log('Aktueller Index des Swiper-Tab-Menüs: ' + currentIndex);
228
229            // Aktualisieren Sie das Tab-Button im Tab-Menu
230            var tabButton = tabButtons.eq(currentIndex);
231            tabButtons.removeClass('active');
232            tabButton.addClass('active');
233
234            // Aktualisieren Sie das .swiper-container-menu und swiper-slide
235            var menuContainer = $('.swiper-container-menu');
236            var menuSlides = menuContainer.find('.swiper-slide');
237            menuSlides.removeClass('active');
238            menuSlides.eq(currentIndex).addClass('active');
239
240            // Scrollen Sie den Container nach links, um das ausgewählte Tab sichtbar zu machen
241            var tabButtonOffset = tabButton.position().left;
242            var menuContainer = $('.swiper-container-menu');
243            menuContainer.scrollLeft(tabButtonOffset);
244
245            // Aktualisieren Sie auch den swiperMenu
246            swiperMenu.slideTo(currentIndex);
247			
248			
249            if (currentIndex === 0) {
250            $('.speisekarte').removeClass('scrolling');
251        } else {
252            $('.speisekarte').addClass('scrolling');
253        }
254            
255        },
256    },
257});
258
259// Tab-Buttons hinzufügen
260var tabButtons = $('.tab-button');
261
262// Ersten Tab als Active
263$('.swiper-container-menu [data-slide="1"]:first').addClass('active');
264
265// Funktion zum Festlegen des aktiven Tabs
266function setActiveTab(activeButton) {
267    tabButtons.removeClass('active');
268    activeButton.addClass('active');
269}
270
271// Aktualisieren des .active-Zustands
272function updateActiveState(activeIndex) {
273    setActiveTab(tabButtons.eq(activeIndex));
274    var menuSlides = $('.swiper-container-menu .swiper-slide');
275    menuSlides.removeClass('active');
276    menuSlides.eq(activeIndex).addClass('active');
277}
278
279// Scrollen zum ausgewählten Tab
280function scrollToTab(activeIndex) {
281    var tabButton = tabButtons.eq(activeIndex);
282    var tabButtonOffset = tabButton.position().left;
283    var menuContainer = $('.swiper-container-menu');
284    menuContainer.scrollLeft(tabButtonOffset);
285}
286
287tabButtons.click(function() {
288    var slideIndex = $(this).data('slide');
289    swiperTabs.slideTo(slideIndex - 1); // -1, da der Index bei 0 beginnt
290    updateActiveState(slideIndex - 1);
291    scrollToTab(slideIndex - 1);
292});
293
294var swiperMenu = new Swiper('.swiper-container-menu', {
295    effect: 'slide',
296    slidesPerView: 'auto',
297    on: {
298        slideChange: function() {
299            // Holen Sie sich den aktuellen Index des Tab-Menu-Swipers
300            var currentIndex = this.activeIndex;
301
302            // Aktualisieren Sie das Tab-Button im Tab-Menu
303            var tabButton = tabButtons.eq(currentIndex);
304            tabButtons.removeClass('active');
305            tabButton.addClass('active');
306
307            // Scrollen Sie den Container nach links, um das ausgewählte Tab sichtbar zu machen
308            var tabButtonOffset = tabButton.position().left;
309            var menuContainer = $('.swiper-container-menu');
310            menuContainer.scrollLeft(tabButtonOffset);
311			
312			if (currentIndex === 0) {
313            $('.speisekarte').removeClass('scrolling');
314        } else {
315            $('.speisekarte').addClass('scrolling');
316        }
317			
318        },
319    },
320});
321
322
323
324
325$('.swiper-container-menu').on('click', '.swiper-slide', function() {
326    var slideIndex = $(this).data('slide');
327    
328    // Entfernen Sie zuerst die "active"-Klasse von allen Slides in der .swiper-container-menu
329    $('.swiper-container-menu .swiper-slide').removeClass('active');
330    
331    swiperTabs.slideTo(slideIndex - 1); // -1, da der Index bei 0 beginnt
332    setActiveTab($(this));
333    
334    // Fügen Sie dann die "active"-Klasse nur dem ausgewählten Slide hinzu
335    $(this).addClass('active');
336});
337
338// Tab-Buttons hinzufügen
339var rubrikImages = $('.rubrik-images');
340
341// Funktion zum Festlegen des aktiven Tabs und Bildes
342function setActiveTabAndImage(activeButton) {
343    var slideIndex = $(activeButton).data('slide');
344    rubrikImages.removeClass('active');
345    $(activeButton).addClass('active');
346    rubrikImages.eq(slideIndex - 1).addClass('active'); // -1, da der Index bei 0 beginnt
347}
348
349// Den ersten Tab als aktiv festlegen
350setActiveTabAndImage(tabButtons.eq(0));
351
352tabButtons.click(function() {
353    setActiveTabAndImage(this);
354});
355
356
357
358
359var layoverswiper = new Swiper('.swiper-container-layover', {
360    slidesPerView: 1, // Standardwert für Desktop
361    spaceBetween: 80,
362    loop: true,
363    pagination: {
364        el: '.swiper-pagination',
365        clickable: true,
366    },
367    navigation: {
368        nextEl: '.swiper-button-next',
369        prevEl: '.swiper-button-prev',
370    },
371    breakpoints: {
372        // Bei einer Bildschirmbreite von 768px oder weniger
373        768: {
374            slidesPerView: 2,
375        }
376    }
377});
378
379
380

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.