krata/assets/js/_commons/topbar-switch.js

69 lines
1.6 KiB
JavaScript
Raw Normal View History

2019-09-30 14:38:41 +02:00
/*
* Hide Header on scroll down
2020-01-02 14:17:49 +01:00
* v2.0
* https://github.com/cotes2020/jekyll-theme-chirpy
2019-09-30 14:38:41 +02:00
* © 2018-2019 Cotes Chung
* MIT License
*/
2019-09-30 14:38:41 +02:00
$(function() {
var didScroll;
var lastScrollTop = 0;
var delta = 5;
2020-08-19 06:26:45 +02:00
var topbarHeight = $("#topbar-wrapper").outerHeight();
2019-09-30 14:38:41 +02:00
function hasScrolled() {
var st = $(this).scrollTop();
/* Make sure they scroll more than delta */
2020-08-19 06:26:45 +02:00
if (Math.abs(lastScrollTop - st) <= delta) {
2019-09-30 14:38:41 +02:00
return;
2020-08-19 06:26:45 +02:00
}
2019-09-30 14:38:41 +02:00
if (st > lastScrollTop && st > topbarHeight) {
/* Scroll Down */
2020-08-19 06:26:45 +02:00
$("#topbar-wrapper").removeClass("topbar-down").addClass("topbar-up");
2019-09-30 14:38:41 +02:00
2020-08-19 06:26:45 +02:00
if ($("#toc-wrapper").length > 0) {
$("#toc-wrapper").removeClass("topbar-down");
2019-09-30 14:38:41 +02:00
}
2020-08-19 06:26:45 +02:00
if ($(".access").length > 0) {
$(".access").removeClass("topbar-down");
2019-09-30 14:38:41 +02:00
}
2020-08-19 06:26:45 +02:00
if ($("#search-input").is(":focus")) {
$("#search-input").blur(); /* remove focus */
2019-09-30 14:38:41 +02:00
}
} else {
/* Scroll Up */
2019-09-30 14:38:41 +02:00
if (st + $(window).height() < $(document).height()) {
2020-08-19 06:26:45 +02:00
$("#topbar-wrapper").removeClass("topbar-up").addClass("topbar-down");
if ($("#toc-wrapper").length > 0) {
$("#toc-wrapper").addClass("topbar-down");
2019-09-30 14:38:41 +02:00
}
2020-08-19 06:26:45 +02:00
if ($(".access").length > 0) {
$(".access").addClass("topbar-down");
2019-09-30 14:38:41 +02:00
}
}
}
lastScrollTop = st;
}
2020-08-19 06:26:45 +02:00
$(window).scroll(function(event) {
if ($("#topbar-title").is(":hidden")) { /* Not in small screens */
didScroll = true;
}
});
setInterval(function() {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 250);
2019-09-30 14:38:41 +02:00
});