1document.addEventListener("DOMContentLoaded", function(){ 2 mainNavX(); 3 swiper(); 4 landingCategories(); 5 accordion(); 6 internalNavListToggleKeepAlive(); 7 internalNavListToggleActive(); 8 internalNavListToggle(); 9 internalNavListIconControlOnLoad(); 10}); 11 12// Simple expandable list 13// 14function internalNavListToggle() { 15 $('.icon-control').click(function() { 16 $(this).parent().find('ul').toggle(); 17 $(this).parent().find('ul').toggleClass('active'); 18 $(this).parent().find('i').toggleClass('fa-plus'); 19 $(this).parent().find('i').toggleClass('fa-minus'); 20 }); 21} 22 23function internalNavListToggleActive() { 24 $(".internal-nav li.active ul").toggle(); 25} 26 27function internalNavListToggleKeepAlive() { 28 $(".internal-nav li ul li.active").parent().addClass('active'); 29 $(".internal-nav li ul.active").parent().addClass('active'); 30} 31 32function internalNavListIconControlOnLoad() { 33 $(".internal-nav li.active").find('.icon-control i').removeClass('fa-plus'); 34 $(".internal-nav li.active").find('.icon-control i').addClass('fa-minus'); 35 $(".internal-nav li ul.active").parent().find('.icon-control i').removeClass('fa-plus'); 36 $(".internal-nav li ul.active").parent().find('.icon-control i').addClass('fa-minus'); 37} 38 39// Swiper 40// 41function swiper() { 42 var mySwiper = new Swiper('.swiper-container', { 43 // Optional parameters 44 direction: 'horizontal', 45 effect: 'fade', 46 loop: true, 47 // autoplay: false, 48 autoplay: { 49 delay: 8000, 50 disableOnInteraction: false, 51 pauseOnMouseEnter: true, 52 }, 53 fadeEffect: { 54 crossFade: true 55 }, 56 // If we need pagination 57 pagination: { 58 el: '.swiper-pagination', 59 }, 60 // Navigation arrows 61 navigation: { 62 nextEl: '.swiper-button-next', 63 prevEl: '.swiper-button-prev', 64 }, 65 // And if we need scrollbar 66 scrollbar: { 67 el: '.swiper-scrollbar', 68 draggable: true, 69 }, 70 }) 71 72 // $(".swiper-button-pause").click(function(){ 73 // swiper.pause(); 74 // }); 75 76 // $(".swiper-button-play").click(function(){ 77 // swiper.start(); 78 // }); 79} 80 81// Landing Categories 82// 83function landingCategories() { 84 $('#landing-air-quality').click(function() { 85 // nav items 86 $(this).addClass('active'); 87 $('#landing-grants').removeClass('active'); 88 $('#landing-general').removeClass('active'); 89 // Categories 90 $('.landing-category--air-quality').addClass('active'); 91 $('.landing-category--grants').removeClass('active'); 92 $('.landing-category--general').removeClass('active'); 93 }); 94 95 $('#landing-grants').click(function() { 96 // nav items 97 $(this).addClass('active'); 98 $('#landing-air-quality').removeClass('active'); 99 $('#landing-general').removeClass('active'); 100 // Categories 101 $('.landing-category--grants').addClass('active'); 102 $('.landing-category--air-quality').removeClass('active'); 103 $('.landing-category--general').removeClass('active'); 104 }); 105 106 $('#landing-general').click(function() { 107 // nav items 108 $(this).addClass('active'); 109 $('#landing-air-quality').removeClass('active'); 110 $('#landing-grants').removeClass('active'); 111 // Categories 112 $('.landing-category--general').addClass('active'); 113 $('.landing-category--air-quality').removeClass('active'); 114 $('.landing-category--grants').removeClass('active'); 115 }); 116} 117 118// Accordion 119// 120function accordion() { 121 const accordionBtns = document.querySelectorAll(".vad-accordion__control"); 122 123 accordionBtns.forEach((accordion) => { 124 accordion.onclick = function () { 125 this.classList.toggle("is-open"); 126 127 let content = this.nextElementSibling; 128 console.log(content); 129 130 if (content.style.maxHeight) { 131 //this is if the accordion is open 132 content.style.maxHeight = null; 133 } else { 134 //if the accordion is currently closed 135 content.style.maxHeight = content.scrollHeight + "px"; 136 console.log(content.style.maxHeight); 137 } 138 }; 139 });
140} 141 142// Main Nav 143// 144function mainNavX() { 145 const topLevelItem = document.querySelectorAll(".vad-main-nav__top-level"); 146 const topLevelListItem = document.querySelectorAll(".vad-main-nav__has-sub"); 147 const noClickItems = document.querySelectorAll('.cms-top-section, .cms-alert, .aqi-forecast-widget, .landing-slider__link-layer, .landing-actions, .vad-footer-top, .vad-footer-ribbon'); 148 149 var body = document.body; 150 var navMain = document.querySelector(".vad-main-nav"); 151 var navMainList = document.querySelector(".vad-main-nav__list"); 152 var navControl = document.querySelector(".control__vad-main-nav a"); 153 var navControlIcon = document.querySelector(".control__vad-main-nav a i"); 154 var navMainSub = document.querySelectorAll(".vad-main-nav__sub"); 155 var navControlBack = document.querySelectorAll(".vad-main-nav__back a"); 156 157 navControl.addEventListener('click', function (e) { 158 159 navMain.classList.toggle('active'); 160 navControlIcon.classList.toggle('fa-times'); 161 body.classList.toggle("noScroll"); 162 163 [].forEach.call(navMainSub, function(el) { 164 el.classList.remove("active"); 165 }); 166 167 }); 168 169 navControlBack.forEach((item) => { 170 item.addEventListener('click', function (e) { 171 [].forEach.call(navMainSub, function(el) { 172 el.classList.remove("active"); 173 }); 174 }); 175 }); 176 177 topLevelItem.forEach((item) => { 178 179 item.onclick = function (e) { 180 let content = this.nextElementSibling; 181 182 content.classList.add('active'); 183 184 // body.classList.add('inactive'); 185 186 // noClickItems.forEach(element => { 187 // element.classList.add('noClick'); 188 // }); 189 }; 190 191 }); 192} 193
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.