Sha256: 00a1fd8abf9939c05c032e5514809a68b92ee23d269a71da8e9be55a79c3a71c

Contents?: true

Size: 1.28 KB

Versions: 23

Compression:

Stored size: 1.28 KB

Contents

var smoothScroll = () => {
  // Select all links with hashes
  $('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();
          $('html, body').animate({
            scrollTop: target.offset().top
          }, 500, 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
            };
          });
        }
      }
    }
  );  
}

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
futuro-0.2.5 assets/js/vendor/futuro-scroll.js
futuro-0.2.4 assets/js/vendor/futuro-scroll.js
futuro-0.2.3 assets/js/vendor/futuro-scroll.js
futuro-0.2.2 assets/js/vendor/futuro-scroll.js
futuro-0.2.1 assets/js/vendor/futuro-scroll.js
futuro-0.2.0 assets/js/vendor/futuro-scroll.js
futuro-0.1.9 assets/js/vendor/futuro-scroll.js
futuro-0.1.8 assets/js/vendor/futuro-scroll.js
futuro-0.1.7 assets/js/vendor/futuro-scroll.js
futuro-0.1.6 assets/js/vendor/futuro-scroll.js
futuro-0.1.5 assets/js/vendor/futuro-scroll.js
futuro-0.1.4 assets/js/vendor/futuro-scroll.js
futuro-0.1.3 assets/js/vendor/futuro-scroll.js
futuro-0.1.2 assets/js/vendor/futuro-scroll.js
futuro-0.1.1 assets/js/vendor/futuro-scroll.js
futuro-0.1.0 assets/js/vendor/futuro-scroll.js
futuro-0.0.9 assets/js/vendor/futuro-scroll.js
futuro-0.0.8 assets/js/vendor/futuro-scroll.js
futuro-0.0.6 assets/js/vendor/futuro-scroll.js
futuro-0.0.5 assets/js/vendor/futuro-scroll.js