// init function handlerInit(){ var navigace = document.getElementById('nav'); var homeElement = document.getElementById('homeheader'); var pageElement = document.getElementById('pageheader'); var mobileMenuBtn = document.getElementById('nav-btn'); var lngsMenuBtn = document.getElementById('nav-lngbtn'); // set size nav handlerScroll(navigace); // add animation addAnimation(navigace); // scroll event window.addEventListener('scroll',function(){ handlerScroll(navigace); }); // wait on mobile menu click mobileMenuBtn.addEventListener('click',handlerMobileMenuOpen); // wait on lngs menu lcick lngsMenuBtn.addEventListener('click',handlerLngsMenuOpen); // for homeElement only if(homeElement){ var homeImgSrc = homeElement.getAttribute('a-img'); var homeImgTemp = new Image(); homeImgTemp.src = homeImgSrc; homeImgTemp.addEventListener('load',function(){ homeAnimation(homeElement);}); if(homeImgTemp.complete) homeAnimation(homeElement); var homeHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; homeElement.style.height = homeHeight+'px'; } // other pages if(pageElement){ var pageHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; pageElement.style.height = (pageHeight/100*65)+'px'; var productsCollection = document.querySelectorAll('[a-click]'); if(productsCollection.length){ for(var i = 0; i < productsCollection.length; i++){ productsCollection[i].addEventListener('click',function(){ var productName = this.getAttribute('a-click'); var productElement = document.querySelector('[a-product="'+productName+'"]'); if(productElement) scroolToProducts(productElement); }); } } } } // handler open lng menu function handlerLngsMenuOpen(){ document.getElementById('nav-lngmobile').classList.add('nav__mobile--block'); document.body.addEventListener('click',handlerLngsMenuClose,true); } // handler close lng menu function handlerLngsMenuClose(e){ var targetEle = e.target; if(targetEle === document.getElementById('nav-lngbtn')) e.stopPropagation(); document.getElementById('nav-lngmobile').classList.remove('nav__mobile--block'); document.body.removeEventListener('click',handlerLngsMenuClose,true); } // handler open mobile menu function handlerMobileMenuOpen(){ document.getElementById('nav-mobile').classList.add('nav__mobile--block'); document.getElementById('nav-btn').classList.add('nav__menubtn--closed'); document.body.addEventListener('click',handlerMobileMenuClose,true); } // handler close mobile menu function handlerMobileMenuClose(e){ var targetEle = e.target; if(targetEle === document.getElementById('nav-btn')) e.stopPropagation(); document.getElementById('nav-mobile').classList.remove('nav__mobile--block'); document.getElementById('nav-btn').classList.remove('nav__menubtn--closed'); document.body.removeEventListener('click',handlerMobileMenuClose,true); } // handler scoll function handlerScroll(element){ // position var position = window.pageYOffset; if(position > 0) navSetSmallSize(element); else navSetBigSize(element); } // set nav to big size function navSetBigSize(element){ element.classList.remove('nav--small'); } // set nav to small size function navSetSmallSize(element){ element.classList.add('nav--small'); } // scroll to products function scroolToProducts(element){ if(!element) return false; var position = element.offsetTop; scrollToPosition(position); } // scroll to position function scrollToPosition(position){ if(!position || position < 1) return false; window.scrollTo({ top: position, left: 0, behavior: 'smooth' }); } // animation on homepage function homeAnimation(element){ setTimeout(function(){ element.querySelector('.homeheader__inner').classList.add('homeheader__inner--animation'); },500); return true; } // scroll to form function scrollToForm(){ var formElement = document.getElementById('form'); if(!formElement) return false; var position = formElement.offsetTop; window.scrollTo(0,position); return true; } // function add navigation function addAnimation(element){ setTimeout(function(){ element.classList.add('nav--animation'); },100); } // DOM contentloaded window.addEventListener('DOMContentLoaded',handlerInit);