$.fn.persistantMenu = function()

in src/assets/js/main.js [339:393]


  $.fn.persistantMenu = function () {
    // Don't enable the scroll hidden menu for touch devices.
    if (is_touch_device) {
      console.debug('No-op persistantMenu for touch enabled devices');
      return {
        kill: function () {
          console.debug('No-op persistantMenu.kill()');
        },
      };
    }

    var $container = this;
    var $window = $(window);
    var scrollTop = $window.scrollTop();
    var stateMinimized = false;
    var lastScrollTop = 0;
    var sensitivity = 5;
    var trigger = 30;

    function scrollState() {
      scrollTop = $window.scrollTop();

      // downscroll
      if (scrollTop > trigger && scrollTop > lastScrollTop && !stateMinimized) {
        stateMinimized = true;
        $container.addClass('minimize').removeClass('minimize-down');

        // upscroll
      } else if (
        scrollTop > trigger &&
        scrollTop < lastScrollTop - sensitivity &&
        stateMinimized
      ) {
        stateMinimized = false;
        $container.removeClass('minimize').addClass('minimize-down');

        // top of page
      } else if (scrollTop < trigger) {
        stateMinimized = false;
        $container.removeClass('minimize minimize-down');
      }

      lastScrollTop = scrollTop;
    }

    $window.on('scroll', scrollState);
    scrollState();

    return {
      kill: function () {
        $container.removeClass('minimize');
        $window.off('scroll');
      },
    };
  };