/* Astral by HTML5 UP html5up.net | @ajlkn Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) */ (function($) { var $window = $(window), $body = $('body'), $wrapper = $('#wrapper'), $main = $('#main'), $panels = $main.children('.panel'), $nav = $('#nav'), $nav_links = $nav.children('a'); // Breakpoints. breakpoints({ xlarge: [ '1281px', '1680px' ], large: [ '981px', '1280px' ], medium: [ '737px', '980px' ], small: [ '361px', '736px' ], xsmall: [ null, '360px' ] }); // Play initial animations on page load. $window.on('load', function() { window.setTimeout(function() { $body.removeClass('is-preload'); }, 100); }); // Nav. $nav_links .on('click', function(event) { var href = $(this).attr('href'); // Not a panel link? Bail. if (href.charAt(0) != '#' || $panels.filter(href).length == 0) return; // Prevent default. event.preventDefault(); event.stopPropagation(); // Change panels. if (window.location.hash != href) window.location.hash = href; }); // Panels. // Initialize. (function() { var $panel, $link; // Get panel, link. if (window.location.hash) { $panel = $panels.filter(window.location.hash); $link = $nav_links.filter('[href="' + window.location.hash + '"]'); } // No panel/link? Default to first. if (!$panel || $panel.length == 0) { $panel = $panels.first(); $link = $nav_links.first(); } // Deactivate all panels except this one. $panels.not($panel) .addClass('inactive') .hide(); // Activate link. $link .addClass('active'); // Reset scroll. $window.scrollTop(0); })(); // Hashchange event. $window.on('hashchange', function(event) { var $panel, $link; // Get panel, link. if (window.location.hash) { $panel = $panels.filter(window.location.hash); $link = $nav_links.filter('[href="' + window.location.hash + '"]'); // No target panel? Bail. if ($panel.length == 0) return; } // No panel/link? Default to first. else { $panel = $panels.first(); $link = $nav_links.first(); } // Deactivate all panels. $panels.addClass('inactive'); // Deactivate all links. $nav_links.removeClass('active'); // Activate target link. $link.addClass('active'); // Set max/min height. $main .css('max-height', $main.height() + 'px') .css('min-height', $main.height() + 'px'); // Delay. setTimeout(function() { // Hide all panels. $panels.hide(); // Show target panel. $panel.show(); // Set new max/min height. $main .css('max-height', $panel.outerHeight() + 'px') .css('min-height', $panel.outerHeight() + 'px'); // Reset scroll. $window.scrollTop(0); // Delay. window.setTimeout(function() { // Activate target panel. $panel.removeClass('inactive'); // Clear max/min height. $main .css('max-height', '') .css('min-height', ''); // IE: Refresh. $window.triggerHandler('--refresh'); // Unlock. locked = false; }, (breakpoints.active('small') ? 0 : 500)); }, 250); }); // IE: Fixes. if (browser.name == 'ie') { // Fix min-height/flexbox. $window.on('--refresh', function() { $wrapper.css('height', 'auto'); window.setTimeout(function() { var h = $wrapper.height(), wh = $window.height(); if (h < wh) $wrapper.css('height', '100vh'); }, 0); }); $window.on('resize load', function() { $window.triggerHandler('--refresh'); }); // Fix intro pic. $('.panel.intro').each(function() { var $pic = $(this).children('.pic'), $img = $pic.children('img'); $pic .css('background-image', 'url(' + $img.attr('src') + ')') .css('background-size', 'cover') .css('background-position', 'center'); $img .css('visibility', 'hidden'); }); } })(jQuery);