goTo = function (pos) { // if ($('body').is('.ios')) { window.scrollTo(0,pos); // } else { // window.scroll({ top: pos, left: 0, behavior: 'smooth' }); // } }; var mlto; siteNav = function (e) { var doc_position = $(document).scrollTop(); var in_section = 0; var margin = $(window).height()/3; var $header = $('header'); var $main = $('#top-nav'); var $side = $('#side-nav'); var header_bottom = $header.offset().top+$header.outerHeight(); if (doc_position > header_bottom-90) { $('nav').addClass('with-logo'); } else { $('nav').removeClass('with-logo'); } if (doc_position > header_bottom-30) { $('nav').addClass('fixed'); $header.addClass('nav-fixed'); } else { $('nav').removeClass('fixed'); $header.removeClass('nav-fixed'); } if (doc_position > $('section:first-of-type').offset().top-margin) { $side.addClass('on'); } if ($side.offset().top+(2*($side.outerHeight()/3)) >= $('section:last-of-type').offset().top) { $side.addClass('alt'); } else { $side.removeClass('alt'); } $('section').each(function(){ var start = $(this).offset().top; var url = $(this).data('url'); if (doc_position >= start-((in_section==0)?100:margin)) { in_section++; $main.find('li').removeClass('active').find('a[href="'+url+'"]').parent().addClass('active'); $side.find('a[href="'+url+'"]', $side).addClass('active').siblings().removeClass('active'); } }); if (!in_section) { $main.find('li').removeClass('active'); $side.removeClass('on').find('a').removeClass('active'); } if (typeof e != 'undefined' && e.type == 'scroll') { $('#map').addClass('off'); clearTimeout(mlto); mlto = setTimeout(function(){ $('#map').removeClass('off'); }, 1000); } }; $(function(){ $('a', 'nav').on('click', function(){ var url = $(this).attr('href'), mod = 0, mq; if (url == '/') { if ($('#side-nav').size()) $('a', '#side-nav').removeClass('active'); goTo(0); return false; } else { if ($('#side-nav').size()) { $('a[href="'+url+'"]', '#side-nav').addClass('active').siblings().removeClass('active'); } if ($('section[data-url="'+url+'"]').size()) { if (typeof window.matchMedia == 'function') { mq = window.matchMedia("(min-width:768px)"); if (mq.matches) { mod = $('nav').outerHeight()-1; } else { mod = -1; } } goTo($('section[data-url="'+url+'"]').offset().top-mod); return false; } } }); $('a', '#obszary-praktyki').on('click', function(){ var url = $(this).attr('href'); if ($('.opis-obszaru-praktyki[data-url="'+url+'"]').size()) { $('.obszar-praktyki').not($(this).closest('h2')).removeClass('aktywny'); $(this).closest('h2').addClass('aktywny'); $('.opis-obszaru-praktyki[data-url="'+url+'"]').addClass('aktywny').siblings().removeClass('aktywny'); return false; } }); if ($('#side-nav').size()) { $('#map').on('click', function(){ $('#map').removeClass('off'); }); $(window).bind('scroll resize orientationchange', siteNav); siteNav(); } });