72 lines
2.3 KiB
JavaScript
72 lines
2.3 KiB
JavaScript
(function ($) {
|
|
/**
|
|
* Get an HTMLElement using Jquery, and store them in a cache for a faster access later
|
|
* @param selector {String} The Jquery selector to use
|
|
* @return {(jQuery.fn.init | jQuery | HTMLElement)} The JQuery HTMLElement
|
|
*/
|
|
$.selector_cache = function (selector) {
|
|
if (!$.selector_cache[selector]) {
|
|
$.selector_cache[selector] = $(selector);
|
|
}
|
|
return $.selector_cache[selector];
|
|
};
|
|
})(jQuery); // Edit JQuery namespace to use the function as $.selector_cache('#elements');
|
|
|
|
|
|
$(document).ready(function () {
|
|
loadHeader();
|
|
fixheader();
|
|
});
|
|
|
|
|
|
|
|
$.selector_cache('.nav-item')
|
|
.on('mouseover', function () {
|
|
$(this).find('.link-effect').addClass('link-hovered');
|
|
})
|
|
.on('mouseleave', function () {
|
|
$(this).find('.link-effect').removeClass('link-hovered');
|
|
}).on('click', function () {
|
|
$(this).find('.link-effect').removeClass('link-hovered');
|
|
$(this).find('.link-effect').addClass('link-active');
|
|
});
|
|
|
|
/**
|
|
* Stop the header from changing height on mobile (with fullscreen browsing)
|
|
*/
|
|
function fixheader() {
|
|
if ($.selector_cache("#headerJumbotron").length > 0) {
|
|
let height = $(window).height() * 0.4;
|
|
$.selector_cache('#headerJumbotron').css('height', height);
|
|
}
|
|
}
|
|
|
|
function loadHeader() {
|
|
if ($.selector_cache("#headerJumbotron").length > 0) {
|
|
animateCss($.selector_cache('#headerTitle'), 'fadeInUp faster');
|
|
$.selector_cache('#headerTitle').css('opacity', 1);
|
|
setTimeout(function () {
|
|
animateCss($.selector_cache('#headerSubTitle'), 'fadeInUp faster');
|
|
$.selector_cache('#headerSubTitle').css('opacity', 1);
|
|
}, 100);
|
|
|
|
setTimeout(function () {
|
|
$.selector_cache('#headerTop').addClass('loaded');
|
|
}, 100);
|
|
|
|
setTimeout(function () {
|
|
$.selector_cache('#headerBottom').addClass('loaded');
|
|
}, 300);
|
|
}
|
|
}
|
|
|
|
// Using animate.css, translated into jquery
|
|
// https://github.com/daneden/animate.css
|
|
function animateCss($elem, animationName, callback) {
|
|
$elem.addClass('animated ' + animationName);
|
|
$elem.on('animationend', function () {
|
|
$elem.removeClass('animated ' + animationName);
|
|
if (typeof callback === 'function')
|
|
callback();
|
|
});
|
|
}
|