139 lines
4.2 KiB
JavaScript
139 lines
4.2 KiB
JavaScript
// hero resizer
|
|
function heroResize() {
|
|
$('#hero').css({
|
|
width: $(window).width(),
|
|
height: $(window).height()
|
|
});
|
|
}
|
|
|
|
// Smooth Scroll Init - Register click handler for ID anchors
|
|
$('a[href*="#"]:not([href="#"])').click(function () {
|
|
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
|
|
var target = $(this.hash);
|
|
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
|
|
if (target.length) {
|
|
var targetOffset = target.offset().top - $(".nav-bar__header").outerHeight(true);
|
|
// console.log(targetOffset, target.offset().top, $(".nav-bar__header").outerHeight())
|
|
$('html, body').animate({
|
|
scrollTop: targetOffset
|
|
}, 1000);
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
|
|
// navbar mobile toggle - preload
|
|
(function navbarInit() {
|
|
|
|
function toggleMobileMenu() {
|
|
$('.nav-bar__menu')[0].style.transition = "max-height 0.5s";
|
|
$('.nav-bar__menu')[0].classList.toggle("hide-menu");
|
|
}
|
|
$('.nav-bar__menu-button, .nav-bar__menu-item > a').click(toggleMobileMenu)
|
|
|
|
}());
|
|
|
|
function iframeResize(maxWidth = 450, widthPadding = 30) {
|
|
let windowWidth = $(window).width()
|
|
let width = (windowWidth > maxWidth) ? maxWidth : windowWidth - widthPadding
|
|
console.log(`passed width ${width}`)
|
|
jQuery('iframe').fitToParent({
|
|
heightOffset: 0, // (int) Put some space around the element
|
|
// widthOffset: 5, // (int) Put some space around the element
|
|
// boxHeight: , // (int) Will look for .size-parent, or fallback to parent size
|
|
boxWidth: width, // (int) Will look for .size-parent, or fallback to parent size
|
|
callback: function (newWidth, newHeight) {
|
|
// alert(`after w h ${newWidth} ${newHeight}`)
|
|
// Fires after fitting is complete
|
|
}
|
|
})
|
|
}
|
|
|
|
// /*
|
|
// * throttledresize: special jQuery event that happens at a reduced rate compared to "resize"
|
|
// *
|
|
// * latest version and complete README available on Github:
|
|
// * https://github.com/louisremi/jquery-smartresize
|
|
// *
|
|
// * Copyright 2012 @louis_remi
|
|
// * Licensed under the MIT license.
|
|
// *
|
|
// * This saved you an hour of work?
|
|
// * Send me music http://www.amazon.co.uk/wishlist/HNTU0468LQON
|
|
// */
|
|
// (function ($) {
|
|
//
|
|
// var $event = $.event,
|
|
// $special,
|
|
// dummy = { _: 0 },
|
|
// frame = 0,
|
|
// wasResized, animRunning;
|
|
//
|
|
// $special = $event.special.throttledresize = {
|
|
// setup: function () {
|
|
// $(this).on("resize", $special.handler);
|
|
// },
|
|
// teardown: function () {
|
|
// $(this).off("resize", $special.handler);
|
|
// },
|
|
// handler: function (event, execAsap) {
|
|
// // Save the context
|
|
// var context = this,
|
|
// args = arguments;
|
|
//
|
|
// wasResized = true;
|
|
//
|
|
// if (!animRunning) {
|
|
// setInterval(function () {
|
|
// frame++;
|
|
//
|
|
// if (frame > $special.threshold && wasResized || execAsap) {
|
|
// // set correct event type
|
|
// event.type = "throttledresize";
|
|
// $event.dispatch.apply(context, args);
|
|
// wasResized = false;
|
|
// frame = 0;
|
|
// }
|
|
// if (frame > 9) {
|
|
// $(dummy).stop();
|
|
// animRunning = false;
|
|
// frame = 0;
|
|
// }
|
|
// }, 30);
|
|
// animRunning = true;
|
|
// }
|
|
// },
|
|
// threshold: 0
|
|
// };
|
|
//
|
|
// })(jQuery, 'throttledResize');
|
|
//
|
|
// // debouncing function for window resize from John Hann
|
|
// // http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
|
|
// (function ($, sr) {
|
|
// var debounce = function (func, threshold, execAsap) {
|
|
// var timeout;
|
|
//
|
|
// return function debounced() {
|
|
// var obj = this,
|
|
// args = arguments;
|
|
//
|
|
// function delayed() {
|
|
// if (!execAsap)
|
|
// func.apply(obj, args);
|
|
// timeout = null;
|
|
// };
|
|
//
|
|
// if (timeout)
|
|
// clearTimeout(timeout);
|
|
// else if (execAsap)
|
|
// func.apply(obj, args);
|
|
//
|
|
// timeout = setTimeout(delayed, threshold || 100);
|
|
// };
|
|
// }
|
|
// // smartresize
|
|
// jQuery.fn[sr] = function (fn) { return fn ? this.bind('resize', debounce(fn, 50)) : this.trigger(sr); };
|
|
//
|
|
// })(jQuery, 'debounceResize');
|