diff options
Diffstat (limited to 'static/assets/js/main.js')
-rw-r--r-- | static/assets/js/main.js | 74 |
1 files changed, 39 insertions, 35 deletions
diff --git a/static/assets/js/main.js b/static/assets/js/main.js index 745b547..1d468a8 100644 --- a/static/assets/js/main.js +++ b/static/assets/js/main.js @@ -25,44 +25,48 @@ var isMobile = false, isTablet = false, isLaptop = false; function addSmoothScroll() { // ref: https://css-tricks.com/snippets/jquery/smooth-scrolling/ // Select all links with hashes - $('a[href*="#"]').click(function (event) { - // On-page links - if ( - location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') - && - location.hostname == this.hostname - ) { - // Figure out element to scroll to - var target = $(this.hash); - target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); - // Does a scroll target exist? - if (target.length) { - // Only prevent default if animation is actually gonna happen - event.preventDefault(); + $('a[href*="#"]') + // Remove links that don't actually link to anything + .not('[href="#"]') + .not('[href="#0"]') + .click(function (event) { + // On-page links + if ( + location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') + && + location.hostname == this.hostname + ) { + // Figure out element to scroll to + var target = $(this.hash); + target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); + // Does a scroll target exist? + if (target.length) { + // Only prevent default if animation is actually gonna happen + event.preventDefault(); - let offset = 60; - if (isMobile) { - offset = 710; - } else if (isTablet) { - offset = 60; + let offset = 60; + if (isMobile) { + offset = 710; + } else if (isTablet) { + offset = 60; + } + $('html, body').animate({ + scrollTop: target.offset().top - offset + }, 1000, function () { + // Callback after animation + // Must change focus! + var $target = $(target); + $target.focus(); + if ($target.is(":focus")) { // Checking if the target was focused + return false; + } else { + $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable + $target.focus(); // Set focus again + }; + }); } - $('html, body').animate({ - scrollTop: target.offset().top - offset - }, 1000, function () { - // Callback after animation - // Must change focus! - var $target = $(target); - $target.focus(); - if ($target.is(":focus")) { // Checking if the target was focused - return false; - } else { - $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable - $target.focus(); // Set focus again - }; - }); } - } - }); + }); } addSmoothScroll(); |