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.