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