/** * 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 { $(".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(''); }); $post.each(function () { var postText = $(this).html(); var fa = []; for (var i = 0; i < icons.length; i++) { fa[i] = {}; fa[i].str = "@" + icons[i] + "@"; fa[i].icon = icons[i]; fa[i].int = postText.search(fa[i].str); if (fa[i].int > -1) { fa[i].count = postText.match(new RegExp(fa[i].str, "g")).length; for (var j = 0; j < fa[i].count; j++) { $(this).html( $(this) .html() .replace(fa[i].str, "") ); } } } }); })(jQuery);