1//=======Swiper======== 2var arr=[]; 3var i = 0; 4 5jQuery(document).ready(function(){ 6 setTimeout(function () { 7 //createSwiper( 8 // Element das zum Swiper werden soll, 9 // Elemente die als Slide verwendet werden sollen, 10 // Klassen die dem Element zugefügt werden sollen 11 // centerSlide?, 12 // Spacebetween mit breakpoints 13 // Spalten -- alternativ über Klassenname 14 // Spalten mobil beibehalten 15 //) 16 var poweredBy = jQuery('.basecontent-stage.swiper .poweredByStage').clone() 17 jQuery('.basecontent-stage .bx-wrapper').addClass('bx-wrapper_stage') 18 jQuery('.basecontent-stage .bx-wrapper').removeClass('bx-wrapper') 19 20 createSwiper('.bx-wrapper', '.bxSlider > div', '', false, [24, 15, 10, 0], 0, false) 21 //createSwiper('.basecontent-stage.swiper', '.stage_items:not(.invisible) > .stage_item', '', true, [24, 15, 10, 0], 0, false) 22 createSwiper('.bx-wrapper_stage', '.image_slider > figure', '', false, [24, 15, 10, 0], 0, false) 23 //createSwiper('.pm-topnews', '.c-pm-meldung-wrapper', '', false, [24, 15, 10, 0], 4, false) 24 createSwiper('.imageGallery.swiperGallery', '.galleryImage', '', true, [24, 15, 10, 0], 0, false) 25 26 jQuery('.swiper.basecontent-stage').prepend(poweredBy) 27 }, 200); 28}); 29 30function createSwiper(element, child, className, center, space, cols, colsMo){ 31 jQuery(element).css('display', 'none') 32 var auto = false; 33 //Klassennamen beibehalten - bei bx-wrapper irrelevant 34 var swiperName = '' 35 var slideName = '' 36 if(element != '.bx-wrapper'){ 37 swiperName = element.split('.')[1] 38 slideName = child.split('.')[1] 39 } 40 if(jQuery(element).length > 0){ 41 jQuery(element).each(function(){ 42 var gallery = false; 43 var currentSwiper = '.swiper-' + i 44 var currentSwiperName = 'swiper-' + i 45 46 //Prüfen ob Slider automatisch durchlaufen soll - wenn JA dann start/stopp hinzufügen 47 if(jQuery(this).hasClass('auto') || jQuery('.bx-controls-auto', this).length > 0){ 48 auto = true; 49 } 50 51 //Grundkonstrukt aufbauen 52 jQuery('<div class="swiper ' + currentSwiperName + ' ' + swiperName + '"></div>').insertAfter(jQuery(this)) 53 jQuery(currentSwiper).append('<div class="swiper-wrapper ' + className + '"></div>') 54 jQuery(child, this).addClass('swiper-slide' + ' ' + slideName); 55 56 jQuery(currentSwiper + ' .swiper-wrapper').append(jQuery('.swiper-slide', this)) 57 58 jQuery(currentSwiper).wrap('<div class="swiperParent"></div>') 59 jQuery('.swiperParent', jQuery(this).parent()).parent().addClass('swiperArticle') 60 61 //Parent markieren 62 if(jQuery(this).hasClass('pm-topnews')){ 63 jQuery('.swiperParent', jQuery(this).parent()).addClass('topnews') 64 } 65 if(jQuery(this).hasClass('imageGallery')){ 66 jQuery('.swiperParent', jQuery(this).parent()).addClass('gallery') 67 } 68 69 //Bildergalerie Zusatz 70 if(jQuery(this).hasClass('imageGallery')){ 71 gallery = true 72 jQuery('img', this).unwrap(); //Lightbox entfernen 73 74 //Klon erstellen für die Thumbs 75 jQuery(currentSwiper).clone().insertAfter(jQuery(currentSwiper)).removeClass('swiper').removeClass(currentSwiperName).addClass('swiper-thumbs-' + i).addClass('swiper-thumbs'); 76 } 77 78 //Controls zufügen 79 var pause = '<div class="swiper-button-pause swiper-button-pause-' + i + '" aria-label="Stop" tabindex="0"></div>' 80 var play = '<div class="swiper-button-play swiper-button-play-' + i + '" aria-label="Start" tabindex="0"></div>' 81 var prev = '<div class="swiper-button-prev swiper-button-prev-' + i + '" aria-label="Vorherige Folie" tabindex="0"></div>' 82 var pagination = '<div class="swiper-pagination swiper-pagination-' + i + '"></div>' 83 var next = '<div class="swiper-button-next swiper-button-next-' + i + '" aria-label="Nächste Folie" tabindex="0"></div>' 84 85 if(auto){ 86 var controls = '<div class="controls">' + pause + play + prev + pagination + next + '</div>' 87 } 88 else{ 89 var controls = '<div class="controls">' + prev + pagination + next + '</div>' 90 } 91 jQuery(currentSwiper).parent().prepend(controls) 92 93 //Spaltenanzahl 94 if(cols == 0){ 95 for(var z = 0; z < 6; z++){ 96 var name = 'spalten-' + z; 97 var nameClass = '.' + name 98 99 if(jQuery(nameClass, this).length > 0 || jQuery(this).hasClass(name)){ 100 jQuery(currentSwiper).addClass(name) 101 jQuery(currentSwiper).parent().addClass('moreCols') 102 } 103 } 104 if(jQuery('.v-row', this).hasClass('v-row--2x50')){ 105 jQuery(currentSwiper).addClass('spalten-2') 106 jQuery(currentSwiper).parent().addClass('moreCols') 107 } 108 if(jQuery('.v-row', this).hasClass('v-row--3x33')){ 109 jQuery(currentSwiper).addClass('spalten-3') 110 jQuery(currentSwiper).parent().addClass('moreCols') 111 } 112 if(jQuery('.v-row', this).hasClass('v-row--4x25')){ 113 jQuery(currentSwiper).addClass('spalten-4') 114 jQuery(currentSwiper).parent().addClass('moreCols') 115 } 116 if(jQuery('.v-row', this).hasClass('v-row--5x20')){ 117 jQuery(currentSwiper).addClass('spalten-5') 118 jQuery(currentSwiper).parent().addClass('moreCols') 119 } 120 } 121 else{ 122 var name = 'spalten-' + cols; 123 jQuery(currentSwiper).addClass(name) 124 //console.log(jQuery(currentSwiper)) 125 jQuery(currentSwiper).parent().addClass('moreCols') 126 if(colsMo){ 127 jQuery(currentSwiper).addClass('mobileColsSame') 128 } 129 130 } 131 132 //Swipernummer abspeichern 133 arr.push(i) 134 i++ 135 136 //Momentanes Element entfernen 137 jQuery(this).remove() 138 });
139 140 //Swiper initialisieren 141 //console.log(arr, element, center) 142 var settings = [arr, '.swiper-', '.swiper-button-next-', '.swiper-button-prev-', '.swiper-button-pause-', '.swiper-button-play-', '.swiper-pagination-', center, space] 143 initSwiper(settings) 144 } 145} 146 147//Swiper initialisieren 148var swiperClass = '' 149var swiperClassGalleryThumbs = ''; 150var swiperNextClass = '' 151var swiperPrevClass = '' 152var swiperPauseClass = '' 153var swiperPlayClass = '' 154var swiperPagClass = '' 155var slideView = '' 156var centerSlide = '' 157var spaceBetween1 = ''; 158var spaceBetween2 = ''; 159var spaceBetween3 = ''; 160var spaceBetween4 = ''; 161var slideView1 = ''; 162var slideView2 = ''; 163var slideView3 = ''; 164var slideView4 = ''; 165 166function initSwiper(settings){ 167 //Jeden Swiper für sich initialisieren 168 var counter = settings[0] 169 for(var e=0; e < counter.length; e++){ 170 //Klassen mit der jeweiligen Nummerierung des swipers 171 swiperClass = settings[1] + counter[e]; 172 swiperClassGalleryThumbs = '.swiper-thumbs-' + counter[e]; 173 174 swiperPauseClass = settings[4] + counter[e]; 175 swiperPlayClass = settings[5] + counter[e]; 176 swiperPrevClass = settings[3] + counter[e]; 177 swiperPagClass = settings[6] + counter[e]; 178 swiperNextClass = settings[2] + counter[e]; 179 180 centerSlide = settings[7]; 181 182 spaceBetween1 = settings[8][0]; 183 spaceBetween2 = settings[8][1]; 184 spaceBetween3 = settings[8][2]; 185 spaceBetween4 = settings[8][3]; 186 187 slideView1 = 'auto' 188 slideView2 = 'auto' 189 slideView3 = 'auto' 190 slideView4 = 'auto' 191 //console.log(e, settings[7], swiperClass, settings[8]) 192 //bei mehrspaltigkeit 193 for(var x = 0; x < 6; x++){ 194 var name = 'spalten-' + x; 195 if(jQuery(swiperClass).hasClass(name)){ 196 if(x > 1){ 197 slideView1 = x; 198 slideView2 = 2; 199 slideView3 = 2; 200 } 201 if(x > 4){ 202 slideView2 = 3; 203 } 204 if(jQuery(swiperClass).hasClass('mobileColsSame')){ 205 if(x > 1){ 206 slideView1 = x; 207 slideView2 = x; 208 slideView3 = x; 209 slideView4 = x; 210 } 211 if(x == 3){ 212 slideView1 = x; 213 slideView2 = x; 214 slideView3 = x; 215 slideView4 = 2; 216 } 217 if(x > 4){ 218 slideView2 = x; 219 } 220 } 221 } 222 } 223 224 const swiper = new Swiper(swiperClass, { 225 keyboard: true, 226 watchSlidesVisibility: true, 227 loopFillGroupWithBlank: false, 228 centeredSlidesBounds: true, 229 centeredSlides: centerSlide, 230 loop: false, 231 232 nextButton: swiperNextClass, 233 prevButton: swiperPrevClass, 234 pagination: { 235 el: swiperPagClass, 236 clickable: true, 237 dynamicBullets: true, 238 dynamicMainBullets: 3, 239 }, 240 241 autoplay:{ 242 delay: 4000, 243 }, 244 245 slidesPerView: slideView4, 246 spaceBetween: spaceBetween4, 247 248 breakpoints: { 249 500: { 250 slidesPerView: slideView3, 251 spaceBetween: spaceBetween3, 252 }, 253 254 800: { 255 slidesPerView: slideView2, 256 spaceBetween: spaceBetween2, 257 }, 258 259 1100: { 260 slidesPerView: slideView1, 261 spaceBetween: spaceBetween1, 262 } 263 }, 264 on: { 265 init(swiper) { 266 //Looping selber triggern - da loop:true nicht barrierefrei 267 const totalSlidesLen = swiper.slides.length; 268 document.querySelector(swiperPrevClass).addEventListener('click', () => { 269 if (swiper.isBeginning) { 270 swiper.slideTo(totalSlidesLen - 1); 271 } else { 272 swiper.slideTo(swiper.realIndex - 1); 273 } 274 }); 275 document.querySelector(swiperNextClass).addEventListener('click', () => { 276 if (swiper.isEnd) { 277 swiper.slideTo(0); 278 } else { 279 swiper.slideTo(swiper.realIndex + 1); 280 } 281 }); 282 document.querySelector(swiperPrevClass).addEventListener('keydown', (z) => { 283 if(z.key == "Enter"){ 284 if (swiper.isBeginning) { 285 swiper.slideTo(totalSlidesLen - 1); 286 } else { 287 swiper.slideTo(swiper.realIndex - 1); 288 } 289 } 290 }); 291 document.querySelector(swiperNextClass).addEventListener('keydown', (z) => { 292 if(z.key == "Enter"){ 293 if (swiper.isEnd) { 294 swiper.slideTo(0); 295 } else { 296 swiper.slideTo(swiper.realIndex + 1); 297 } 298 } 299 }); 300 301 //Autoplay 302 if(document.querySelector(swiperPlayClass)){ 303 var pause = swiperPauseClass 304 var play = swiperPlayClass 305 document.querySelector(swiperPlayClass).classList.add('active') 306 document.querySelector(swiperPauseClass).addEventListener('click', () => { 307 document.querySelector(play).classList.remove('active') 308 document.querySelector(pause).classList.add('active') 309 this.autoplay.stop(); 310 }); 311 document.querySelector(swiperPlayClass).addEventListener('click', () => { 312 this.autoplay.start(); 313 document.querySelector(pause).classList.remove('active') 314 document.querySelector(play).classList.add('active') 315 }); 316 } 317 else{ 318 this.autoplay.stop(); 319 } 320 321 //Buttons disable wenn keine weitere Slide 322 if(swiper.slides.length <= swiper.params.slidesPerView ){ 323 swiper.$el[0].parentElement.classList.add('disabled') 324 } 325 else{ 326 swiper.$el[0].parentElement.classList.remove('disabled') 327 } 328 }, 329 } 330 });
331 332 //Bildergalerie 333 if(jQuery(swiperClassGalleryThumbs).length > 0){ 334 var swiperThumbs = new Swiper(swiperClassGalleryThumbs, { 335 spaceBetween: 10, 336 centeredSlides: true, 337 slidesPerView: 6, 338 touchRatio: 0.2, 339 slideToClickedSlide: true, 340 loop: false, 341 loopedSlides: 4, 342 343 slidesPerView: slideView4, 344 345 breakpoints: { 346 500: { 347 slidesPerView: slideView3 * 2, 348 }, 349 350 800: { 351 slidesPerView: slideView2 * 2, 352 }, 353 354 1100: { 355 slidesPerView: slideView1 * 2, 356 } 357 }, 358 }); 359 swiper.controller.control = swiperThumbs; 360 swiperThumbs.controller.control = swiper; 361 } 362 363 jQuery(swiperClass).css('display', 'block') 364 365 } 366} 367
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.