diff options
Diffstat (limited to 'static/js/index.js')
-rw-r--r-- | static/js/index.js | 242 |
1 files changed, 127 insertions, 115 deletions
diff --git a/static/js/index.js b/static/js/index.js index ac7641e..820d3c1 100644 --- a/static/js/index.js +++ b/static/js/index.js @@ -2,121 +2,133 @@ * 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 $postafter = $('.post-after'); -var $sitehead = $('#site-head'); +var $post = $(".post"); +var $first = $(".post.first"); +var $last = $(".post.last"); +var $fnav = $(".fixed-nav"); +var $postholder = $(".post-holder"); +var $postafter = $(".post-after"); +var $sitehead = $("#site-head"); /* Globals jQuery, document */ (function ($) { - "use strict"; - function srcTo (el) { - $('html, body').animate({ - scrollTop: el.offset().top - }, 1000); - } - function srcToAnchorWithTitle (str) { - var $el = $('#' + str); - if ($el.length) { - srcTo($el); - } - } - $(document).ready(function(){ - - $postholder.each(function (e) { - if(e % 2 != 0) - $(this).addClass("odd"); - }); - - $postafter.each(function (e) { - var bg = $(this).parent().css('background-color') - $(this).css('border-top-color', bg); - - if (e % 2 == 0) { - $(this).addClass("even"); - } - }); - - $('a.btn.site-menu').click(function (e) { - srcToAnchorWithTitle($(e.target).data('title-anchor')); - }); - $('#header-arrow').click(function () { - srcTo($first); - }); - - $('.post-title').each(function () { - var t = $(this).text(); - var index = $(this).parents('.post-holder').index(); - $fnav.append("<a class='fn-item' item_index='"+index+"'>"+t+"</a>") - $('.fn-item').click(function () { - var i = $(this).attr('item_index'); - var s = $(".post[item_index='"+i+"']"); - - $('html, body').animate({ - scrollTop: s.offset().top - }, 400); - - }); - }); - - $('.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 >= g && w<=h) { - $('.fixed-nav').fadeOut('fast'); - } else if($(window).width()>500) { - $('.fixed-nav').fadeIn('fast'); - } - - $post.each(function () { - 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'); - } - }); - }); - } - - $('ul li').before('<span class="bult fa fa-asterisk icon-asterisk"></span>'); - $('blockquote p').prepend('<span class="quo icon-quote-left"></span>'); - $('blockquote p').append('<span class="quo icon-quote-right"></span>'); - }); - - $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, "<i class='fa "+fa[i].icon+"'></i>")) - } - } - } - }); - - -}(jQuery)); + "use strict"; + function srcTo(el) { + $("html, body").animate( + { + scrollTop: el.offset().top, + }, + 1000 + ); + } + function srcToAnchorWithTitle(str) { + var $el = $("#" + str); + if ($el.length) { + srcTo($el); + } + } + $(document).ready(function () { + $postholder.each(function (e) { + if (e % 2 != 0) $(this).addClass("odd"); + }); + + $postafter.each(function (e) { + var bg = $(this).parent().css("background-color"); + $(this).css("border-top-color", bg); + + if (e % 2 == 0) { + $(this).addClass("even"); + } + }); + + $("a.btn.site-menu").click(function (e) { + srcToAnchorWithTitle($(e.target).data("title-anchor")); + }); + $("#header-arrow").click(function () { + srcTo($first); + }); + + $(".post-title").each(function () { + var t = $(this).text(); + var index = $(this).parents(".post-holder").index(); + $fnav.append( + "<a class='fn-item' item_index='" + index + "'>" + t + "</a>" + ); + $(".fn-item").click(function () { + var i = $(this).attr("item_index"); + var s = $(".post[item_index='" + i + "']"); + + $("html, body").animate( + { + scrollTop: s.offset().top, + }, + 400 + ); + }); + }); + + $(".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 >= g && w <= h) { + $(".fixed-nav").fadeOut("fast"); + } else if ($(window).width() > 500) { + $(".fixed-nav").fadeIn("fast"); + } + + $post.each(function () { + 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"); + } + }); + }); + } + + $("ul li").before( + '<span class="bult fa fa-asterisk icon-asterisk"></span>' + ); + $("blockquote p").prepend('<span class="quo icon-quote-left"></span>'); + $("blockquote p").append('<span class="quo icon-quote-right"></span>'); + }); + + $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, "<i class='fa " + fa[i].icon + "'></i>") + ); + } + } + } + }); +})(jQuery); |