hugo-theme-introduction/assets/js/index.js
Etienne Membrives 826b4c2c9f Fix smooth scrolling for footnotes (#103)
Footnotes are using a fragment format with a colon inside ("#fn:1" for
example). However, ":" is a special character for jQuery
(http://api.jquery.com/category/selectors/), thus the target anchor is
never found and the scrolling does not happen.

This change selects the right target element using vanilla Javascript to
bypass special characters that could be in the fragment part.
2018-11-13 11:03:07 +01:00

45 lines
1.5 KiB
JavaScript

// Nav burger animation
document.addEventListener("DOMContentLoaded", function () {
// Get all "navbar-burger" elements
var $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll(".navbar-burger"), 0);
// Check if there are any navbar burgers
if ($navbarBurgers.length > 0) {
// Add a click event on each of them
$navbarBurgers.forEach(function ($el) {
$el.addEventListener("click", function () {
// Get the target from the "data-target" attribute
var target = $el.dataset.target;
var $target = document.getElementById(target);
// Toggle the class on both the "navbar-burger" and the "navbar-menu"
$el.classList.toggle("is-active");
$target.classList.toggle("is-active");
});
});
}
});
// Bitty scrolling links script
$("a[href^=\"#\"]").click(function(e) {
e.preventDefault();
$("html, body").animate({
scrollTop: $(document.getElementById(this.hash.substr(1))).offset().top
}, 500);
$("#nav-menu").removeClass("is-active");
return true;
})
// Modal closer
$(".card").click(function () {
$($(this).attr("data-target")).addClass("is-active");
$("html").addClass("modal-open");
});
$(".modal-close").click(function () {
$($(this).attr("data-target")).removeClass("is-active");
$("html").removeClass("modal-open");
});
$(document).keypress(function(e) {
if(e.which == 0) {
$(".modal.is-active").removeClass("is-active");
$("html").removeClass("modal-open");
}
});