103 lines
3.2 KiB
JavaScript
103 lines
3.2 KiB
JavaScript
/**
|
|
* Main JS file for Casper behaviours
|
|
*/
|
|
|
|
/* globals jQuery, document */
|
|
(function ($, undefined) {
|
|
"use strict";
|
|
|
|
var $document = $(document);
|
|
|
|
$document.ready(function () {
|
|
|
|
var $postContent = $(".post-content");
|
|
$postContent.fitVids();
|
|
|
|
$(".scroll-up").arctic_scroll();
|
|
|
|
var scrollTarget = (window.innerHeight * 0.30);
|
|
// Don't hide this earlier (in CSS) for SEO reasons
|
|
$('.hidden-content').hide();
|
|
|
|
// On scroll, check if the height is passed, and if so, trigger.
|
|
$(document).scroll(function(e){
|
|
if ($document.width() > 767) {
|
|
if (window.scrollY >= scrollTarget) {
|
|
$('#scroll-arrow').hide(200);
|
|
$('.hidden-content').fadeIn(100);
|
|
} else if (window.scrollY < scrollTarget) {
|
|
$('.hidden-content').fadeOut(200);
|
|
$('#scroll-arrow').show(200);
|
|
}
|
|
}
|
|
});
|
|
|
|
$(window).resize(function() {resizeHeader();});
|
|
resizeHeader();
|
|
|
|
function resizeHeader() {
|
|
var hide = true;
|
|
|
|
if ($('#scroll-arrow').is(':visible')) {
|
|
hide = false;
|
|
} else if ($(window).width() > 767) {
|
|
$('#scroll-arrow').show();
|
|
}
|
|
|
|
var overhang = $(window).height() - $('.top-content').outerHeight();
|
|
var height = $('.hidden-content').height();
|
|
|
|
var calculated = 200;
|
|
|
|
if ($(window).width() > 767) {
|
|
calculated = (height - overhang + ($(window).height() * 0.2));
|
|
} else if ($('.hidden-content').is(":visible")) {
|
|
calculated = (height - overhang + ($(window).height() * 0.5));
|
|
}
|
|
|
|
$('.below-header').height(calculated);
|
|
|
|
if (hide) {
|
|
$('#scroll-arrow').hide();
|
|
}
|
|
}
|
|
|
|
$('.mobile-button').click(function() {
|
|
$('.hidden-content').fadeIn(100);
|
|
resizeHeader();
|
|
})
|
|
});
|
|
|
|
// Arctic Scroll by Paul Adam Davis
|
|
// https://github.com/PaulAdamDavis/Arctic-Scroll
|
|
$.fn.arctic_scroll = function (options) {
|
|
|
|
var defaults = {
|
|
elem: $(this),
|
|
speed: 500
|
|
},
|
|
|
|
allOptions = $.extend(defaults, options);
|
|
|
|
allOptions.elem.click(function (event) {
|
|
event.preventDefault();
|
|
var $this = $(this),
|
|
$htmlBody = $('html, body'),
|
|
offset = ($this.attr('data-offset')) ? $this.attr('data-offset') : false,
|
|
position = ($this.attr('data-position')) ? $this.attr('data-position') : false,
|
|
toMove;
|
|
|
|
if (offset) {
|
|
toMove = parseInt(offset);
|
|
$htmlBody.stop(true, false).animate({scrollTop: ($(this.hash).offset().top + toMove) }, allOptions.speed);
|
|
} else if (position) {
|
|
toMove = parseInt(position);
|
|
$htmlBody.stop(true, false).animate({scrollTop: toMove }, allOptions.speed);
|
|
} else {
|
|
$htmlBody.stop(true, false).animate({scrollTop: ($(this.hash).offset().top) }, allOptions.speed);
|
|
}
|
|
});
|
|
|
|
};
|
|
})(jQuery);
|