uci-hugo-landingpage/assets/js/page.js

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');