forked from zjedi/hugo-scroll
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
99 lines (89 loc) · 2.89 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/**
* 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('<span class="fa-li"><i class="fa ' + ulLiIcon + '"></i></span>');
}
$("blockquote p").prepend('<span class="quo fa fa-quote-left"></span>');
$("blockquote p").append('<span class="quo fa fa-quote-right"></span>');
});
})(jQuery);