PageSourceSearch

https://www.bonusfinder.com/wp-content/cache/min/1/wp-content/them…/bonusfinder/js/mega-menu.js?ver=1790938179

js bonusfinder.com collected 2026-10-03 21:31:25 UTC 5,410 bytes, 37 lines download raw bytes

1(function(){'use strict';function initDesktopMegaMenu(){var nav=document.querySelector('.bf-mega-menu-container');var items=document.querySelectorAll('.bf-mega-menu__item--has-panel');if(!nav||!items.length){return}
2var plainLinkItems=nav.querySelectorAll('.bf-mega-menu__item:not(.bf-mega-menu__item--has-panel)');function closeItem(item){item.classList.remove('bf-mega-menu__item--open');var trigger=item.querySelector('.bf-mega-menu__trigger');if(trigger){trigger.setAttribute('aria-expanded','false');if(document.activeElement===trigger){trigger.blur()}}}
3function closeAll(){items.forEach(closeItem)}
4function openItem(item){items.forEach(function(other){if(other!==item){closeItem(other)}});item.classList.add('bf-mega-menu__item--open');var trigger=item.querySelector('.bf-mega-menu__trigger');if(trigger){trigger.setAttribute('aria-expanded','true')}}
5items.forEach(function(item){var trigger=item.querySelector('.bf-mega-menu__trigger');if(!trigger){return}
6item.addEventListener('mouseenter',function(){openItem(item)});trigger.addEventListener('click',function(e){e.preventDefault();openItem(item)})});plainLinkItems.forEach(function(item){item.addEventListener('mouseenter',closeAll)});nav.addEventListener('mouseleave',closeAll);document.addEventListener('click',function(e){if(!e.target.closest('.bf-mega-menu__item--has-panel')){closeAll()}});document.addEventListener('keydown',function(e){if(e.key!=='Escape'){return}
7items.forEach(function(item){if(item.classList.contains('bf-mega-menu__item--open')){var trigger=item.querySelector('.bf-mega-menu__trigger');closeItem(item);if(trigger){trigger.focus()}}})})}
8function initMobileScrollIndicator(){var scrollArea=document.querySelector('.bf-mega-menu__scroll-area');var list=scrollArea&&scrollArea.querySelector('nav.bf-mega-menu--mobile');var indicator=document.querySelector('.bf-mega-menu__scroll-track');var track=document.querySelector('.bf-mega-menu__scroll-track-bar');var thumb=document.querySelector('.bf-mega-menu__scroll-track-thumb');if(!list||!indicator||!track||!thumb){return}
9function update(){var scrollable=list.scrollHeight-list.clientHeight;if(scrollable<=0){indicator.style.display='none';return}
10indicator.style.display='';var trackHeight=track.clientHeight;if(trackHeight<=0){return}
11var thumbHeight=Math.max(20,(list.clientHeight/list.scrollHeight)*trackHeight);var maxTop=trackHeight-thumbHeight;var top=(list.scrollTop/scrollable)*maxTop;thumb.style.height=thumbHeight+'px';thumb.style.top=top+'px'}
12list.addEventListener('scroll',update);window.addEventListener('resize',update);var accordionToggles=list.querySelectorAll('input.menu-toggle[id^="menu-item-"]');accordionToggles.forEach(function(toggle){toggle.addEventListener('change',function(){setTimeout(update,350)})});update()}
13function initAdminBarOffset(){var adminBar=document.getElementById('wpadminbar');if(!adminBar){return}
14var ticking=!1;var adminBarHeight=adminBar.offsetHeight;function apply(){if(document.body.classList.contains('bf-mega-menu-scroll-locked')){ticking=!1;return}
15if(window.scrollY<=0){adminBarHeight=adminBar.offsetHeight}
16var offset=Math.max(0,adminBarHeight-window.scrollY);document.documentElement.style.setProperty('--bf-mega-menu-admin-bar-offset',offset+'px');ticking=!1}
17function requestUpdate(){if(!ticking){ticking=!0;window.requestAnimationFrame(apply)}}
18window.addEventListener('scroll',requestUpdate,{passive:!0});window.addEventListener('resize',requestUpdate);apply()}
19function initHeaderHeightVar(){var header=document.getElementById('header-v2');if(!header){return}
20var ticking=!1;function apply(){if(document.body.classList.contains('bf-mega-menu-scroll-locked')){ticking=!1;return}
21var bottom=header.getBoundingClientRect().bottom;document.documentElement.style.setProperty('--bf-mega-menu-header-height',Math.max(0,bottom)+'px');ticking=!1}
22function requestUpdate(){if(!ticking){ticking=!0;window.requestAnimationFrame(apply)}}
23window.addEventListener('scroll',requestUpdate,{passive:!0});window.addEventListener('resize',requestUpdate);apply()}
24function initBodyScrollLock(){var toggle=document.getElementById('menu-toggle');
24if(!toggle){return}
25var isLocked=!1;function isInsideDrawerScroller(target){var scroller=document.querySelector('.menu-wrapper.popup nav.bf-mega-menu--mobile');return!!(scroller&&scroller.contains(target))}
26function preventScroll(e){if(isInsideDrawerScroller(e.target)){return}
27e.preventDefault()}
28function lock(){if(isLocked){return}
29isLocked=!0;document.body.classList.add('bf-mega-menu-scroll-locked');document.addEventListener('wheel',preventScroll,{passive:!1,});document.addEventListener('touchmove',preventScroll,{passive:!1,})}
30function unlock(){if(!isLocked){return}
31isLocked=!1;document.body.classList.remove('bf-mega-menu-scroll-locked');document.removeEventListener('wheel',preventScroll);document.removeEventListener('touchmove',preventScroll)}
32function sync(){if(toggle.checked){lock()}else{unlock()}}
33toggle.addEventListener('change',sync);sync()}
34function resetMenuToggleOnLoad(){var toggle=document.getElementById('menu-toggle');if(!toggle){return}
35function reset(){if(toggle.checked){toggle.checked=!1;toggle.dispatchEvent(new Event('change'))}}
36reset();window.addEventListener('pageshow',function(e){if(e.persisted){reset()}})}
37resetMenuToggleOnLoad();initDesktopMegaMenu();initMobileScrollIndicator();initAdminBarOffset();initHeaderHeightVar();initBodyScrollLock()})()

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.