1jQuery(document).ready(function($) { 2 3 /*Tabs Destination*/ 4 var setTabFocusCls = false; 5 $( "#tabs" ).tabs({ 6 activate: function(ev, ui) { 7 if (setTabFocusCls) { 8 $('.ui-tabs-tab', ev.target).removeClass('tab-focus'); 9 $('.ui-tabs-active', ev.target).addClass('tab-focus'); 10 setTabFocusCls = false; 11 } 12 } 13 }).on('keyup', function(ev) { 14 if (ev.keyCode == 37 || ev.keyCode == 39) { 15 setTabFocusCls = true; 16 } 17 }); 18 19 // Suche 20 $('.suche-btn, .suche-btn-fs').attr({'aria-expanded': 'false', 'aria-label': 'Volltextsuche \u00f6ffnen' }); 21 // -> modern 22 $('.suche-btn, .open-modern-search').on('click', function() { 23 $('.suche-btn, .suche-outer').toggleClass('active'); 24 $('.suche-outer form input, .suche-outer form button').attr('tabindex', function(index, attr){ 25 return attr == -1 ? null : -1; 26 }); 27 if ($('.suche-btn').hasClass('active')) { 28 $('.suche-btn').attr({ 'aria-expanded': 'true', 'aria-label': 'Volltextsuche schlie\u00dfen' }); 29 setTimeout(function() { 30 $('.suche-outer form input[type=text]').focus(); 31 }, 25); 32 } else { 33 $('.suche-btn').attr({ 'aria-expanded': 'false', 'aria-label': 'Volltextsuche \u00f6ffnen' }).focus(); 34 } 35 }); 36 // -> fullscreen 37 $('.suche-btn-fs, .open-fullscreen-search').on('click', function() { 38 $('.suche-btn-fs').toggleClass('active'); 39 $('.suche-fullscreen').toggleClass('flex'); 40 $('.top').toggleClass('activesearch'); 41 $('html').toggleClass('noscroll'); 42 if ($('.suche-btn-fs').hasClass('active')) { 43 $('.suche-btn-fs').attr({ 'aria-expanded': 'true', 'aria-label': 'Volltextsuche schlie\u00dfen' }); 44 $('.suche form input').focus(); 45 } else { 46 $('.suche-btn-fs').attr({ 'aria-expanded': 'false', 'aria-label': 'Volltextsuche \u00f6ffnen' }).focus(); 47 } 48 }); 49 50 // Navigation per Sprunglink öffnen Desktop 51 $('.jump-mainmenu').on('click', function(ev) { 52 console.log($('.header-right .modern-nav-btn')) 53 $('.header-right .modern-nav-btn').focus().trigger('click'); 54 ev.stopPropagation(); 55 ev.preventDefault(); 56 }); 57 58 // Navigation per Sprunglink öffnen mobil 59 $('.jump-mainmenu-mob').on('click', function(ev) { 60 $('.modern-nav .modern-nav-btn').focus().trigger('click'); 61 ev.stopPropagation(); 62 ev.preventDefault(); 63 }); 64 65 $.fn.ikissKeepFocus({ 66 elements: [ 67 { selector: '#cookie-note' }, 68 //{ selector: '.modal-window-content' }, 69 { selector: '.header-right .flex-inner', onKeyDown:function() { return $('.suche-fullscreen').hasClass('flex'); }, isVisible: function() { return $('.suche-fullscreen').hasClass('flex'); } }, 70 { selector: '.suche-fullscreen', isVisible: function() { return $('.suche-fullscreen').hasClass('flex'); } } 71 ] 72 }); 73 74 // Accordion 75 if ($.fn.ikissAccordion) { 76 77 $('.accordion').ikissAccordion({ 78 iconStyle : 'far', 79 iconOpen : 'fa-plus', 80 iconClose : 'fa-minus', 81 autoOpenFirst : false, // bei pauschaler Aktivierung muss auf dem Parameterformular "ix_auto_open_first" auskommentiert werden 82 autoClose : false, // bei pauschaler Aktivierung muss auf dem Parameterformular "ix_auto_close" auskommentiert werden 83 activeCls : 'active' 84 }); 85 86 // Alte Toggler auf Accordion umstellen 87 ikissAccordion({ 88 titleSelector : '.toggler-title', 89 containerSelector : '.toggler-container' 90 }); 91 ikissAccordion({ 92 titleSelector : '.toggler-link', 93 containerSelector : '.toggler-container' 94 }); 95 96 //Flexslider resize, wenn z.B. inital hidden 97 $('.accordion .accordion-title').on('click',function(){ 98 var rootNode = $(this).next('.accordion-container'), 99 slideNodes = $('.flexslider', rootNode); 100 101 slideNodes.each(function(idx, el){ 102 var fs = $(this).data('flexslider'); 103 if (fs) { 104 setTimeout(function() { 105 fs.setup(); 106 fs.resize(); 107 }, 10); 108 109 setTimeout(function() { 110 $(window).trigger('resize'); 111 }, 250); 112 113 } 114 }); 115 }) 116 117 } 118 119 // BITV: Fokus-Hervorhebung durch Tabulator-Taste mit spezieller CSS-Klasse formatieren 120 /* TH, 11.06.2024, TASK20538 */ 121 $('body').on('focusin focusout', 'button, input, select, textarea, a, *[tabindex]', function(ev) { 122 var me = this; 123 if (ev.type == 'focusout') { 124 if ($(me).hasClass('js-link-source')) { 125 $(me).closest('.js-link').removeClass('tab-focus'); 126 } else { 127 $(me).removeClass('tab-focus'); 128 } 129 $(window).off('keyup.tabkey'); 130 } else { 131 $(window).one('keyup.tabkey', function (e) { 132 var keyCode = (e.keyCode ? e.keyCode : e.which);
133 if (keyCode == 9 || keyCode == 13) { 134 if (!$('.tab-focus', me).length) { 135 $(me).closest('.tab-focus').removeClass('tab-focus'); 136 if ($(me).hasClass('js-link-source')) { 137 $(me).closest('.js-link').addClass('tab-focus'); 138 } else { 139 $(me).addClass('tab-focus'); 140 } 141 } 142 } 143 }); 144 } 145 }); 146 147 // Flexslider - Anpassung prev/nex Icons bei Tabulator-Taste 148 $('body').on('focusin focusout', 'a[class*="next"], a[class*="prev"]', function(ev) { 149 var me = this, 150 fVars = null; 151 152 $(me).parents().filter(function() { 153 return $(this).data('flexslider'); 154 }).each(function() { 155 var fVars = $(this).data('flexslider').vars, 156 mode = /next/.test(me.className) ? 'next' : 'prev'; 157 158 if (!fVars[mode+'TextOnTab']) 159 return; 160 161 if (ev.type == 'focusout') { 162 $(me).html(fVars[mode+'Text']); 163 $(window).off('flexslidertabkey'); 164 } else { 165 $(window).one('keyup.flexslidertabkey', function (e) { 166 var keyCode = (e.keyCode ? e.keyCode : e.which); 167 if (keyCode == 9 || keyCode == 13) { 168 $(me).html(fVars[mode+'TextOnTab']); 169 } 170 }); 171 } 172 }); 173 }); 174 175 // Suchergebnis/Listengenerator: JavaScript-Link zur Detailansicht 176 /* TH, 11.06.2024, TASK20538 */ 177 $('.js-link').on('click', function(ev) { 178 179 // bei no-js-link sowie auf echten Links keine Aktion 180 if ($(ev.target).closest('.no-js-link, a').length) return; 181 182 // ansonsten den Link aus js-link-source aufrufen 183 if ($('.js-link-source', this).length) { 184 $('.js-link-source', this)[0].click(); 185 return; 186 } 187 }); 188 189 // Suchergebnis/Listengenerator: Icons dynamisch skalieren 190 /* TH, 11.06.2024, TASK20538 */ 191 (function() { 192 var icons = $('.js-icon-resize').parent(); 193 var iconResize = function() { 194 icons.each(function() { 195 var w = $(this).width(), 196 h = $(this).height(), 197 minSize = (Math.min(w,h)/2); 198 this.style.fontSize = minSize + 'px'; 199 }); 200 } 201 $(window).on('resize', iconResize); 202 iconResize(); 203 })(); 204 205}); 206 207// Variable für Scrollbar-Breite 208document.documentElement.style.setProperty('--scrollbar-width', (window.innerWidth - document.documentElement.clientWidth) + "px"); 209 210// Readspeaker 211window.rsConf = { 212 cb: { 213 ui: { 214 open: function() { $('#readthis').addClass('rs_active'); }, // Klasse ergaenzen, um alle Aufklapper zu oeffnen 215 close: function() { location.reload(); } // Seite aktualisieren, wenn Readspeaker geschlossen wird, da danach das JS nicht mehr funktioniert 216 } 217 } 218};
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.