/** * Main JS file for GhostScroll behaviours */ var $post = $(".post"); var $first = $(".post.first"); var $last = $(".post.last"); var $fnav = $(".fixed-nav"); var $postholder = $(".post-holder"); var $sitehead = $("#site-head"); /* Globals jQuery, document */ (function ($) { "use strict"; function srcTo(el, dur = 1000) { $("html, body").animate( { scrollTop: el.offset().top, }, dur, function () { window.location.hash = el.attr("id"); } ); } function srcToAnchorWithTitle(str) { var $el = $("#" + str); if ($el.length) { srcTo($el); } } $(document).ready(function () { // fallback to jQuery animate if smooth scrolling is not supported if (!"scrollBehavior" in document.documentElement.style) { // Cover buttons $("a.btn.site-menu").click(function (e) { e.preventDefault(); srcToAnchorWithTitle($(e.target).data("title-anchor")); }); // cover arrow button $("#header-arrow").click(function (e) { e.preventDefault(); srcTo($first); }); } $(".post.last").next(".post-after").hide(); if ($sitehead.length) { $(window).scroll(function () { var w = $(window).scrollTop(); var g = $sitehead.offset().top; var h = $sitehead.offset().top + $sitehead.height() - 100; if (w >= Math.floor(g) && w <= Math.ceil(h)) { $(".fixed-nav").fadeOut("fast"); } else if (w < Math.floor(g)) { $(".fixed-nav").fadeOut("fast"); } else { $(".fixed-nav").css("display", "flex").fadeIn("fast"); } $post.each(function () { if ( $(window).height() + w > $(document).height() - $(".site-footer").height() ) { var l = $postholder.length; $(".fn-item").removeClass("active"); $(".fn-item[item_index='" + l + "']").addClass("active"); } else { var f = $(this).offset().top; var b = $(this).offset().top + $(this).height(); var t = $(this).parent(".post-holder").index(); var i = $(".fn-item[item_index='" + t + "']"); var a = $(this) .parent(".post-holder") .prev(".post-holder") .find(".post-after"); $(this).attr("item_index", t); if (w >= f && w <= b) { i.addClass("active"); a.fadeOut("slow"); } else { i.removeClass("active"); a.fadeIn("slow"); } } }); }); } var ulLiIcon = getComputedStyle(document.documentElement).getPropertyValue( "--ul-li-icon" ); if (ulLiIcon.length > 0) { $("ul").addClass("fa-ul"); $("ul li").prepend( '' ); } $("blockquote p").prepend(''); $("blockquote p").append(''); }); })(jQuery);