Sha256: d8586193c79f958a9a7759ecb4aaf484bc7faff0d71e37090aa183d085318e97

Contents?: true

Size: 1.96 KB

Versions: 69

Compression:

Stored size: 1.96 KB

Contents

/*global IScroll*/

(function($) {
  var ENTER_KEY = 13;
  var SPACE_KEY = 32;

  $.widget('pageflow.scrollButton', {
    _create: function() {
      var element = this.element;
      var scroller = this.options.scroller;
      var direction = this.options.direction;
      var interval;

      scroller.on('scrollEnd', function() {
        updateVisibility();
      });

      this.element.on('click', function() {
      });

      if (this.options.page) {
        element.on({
          click: function () {
            changePage();
            element.blur();
            return false;
          },

          keypress: function(e) {
            if (e.which == SPACE_KEY) {
              changePage();
            }
          },

          touchstart: function() {
            changePage();
          }
        });
      }

      updateVisibility();

      function updateVisibility() {
        element.toggle(!atBoundary());
      }

      function changePage() {
        if (direction === 'top' || direction === 'left') {
          scroller.prev();
        }
        else if (direction === 'down' || direction === 'right') {
          scroller.next();
        }
      }

      function scrollBy(delta, duration) {
        if (direction === 'top') {
          scroller.scrollBy(0, delta, duration);
        }
        else if (direction === 'left') {
          scroller.scrollBy(delta, 0, duration);
        }
        else if (direction === 'down') {
          scroller.scrollBy(0, -delta, duration);
        }
        else {
          scroller.scrollBy(-delta, 0, duration);
        }
      }

      function atBoundary() {
        if (direction === 'top') {
          return (scroller.y >= 0);
        }
        else if (direction === 'left') {
          return (scroller.x >= 0);
        }
        else if (direction === 'down') {
          return (scroller.y <= scroller.maxScrollY);
        }
        else {
          return (scroller.x <= scroller.maxScrollX);
        }
      }
    }
  });
}(jQuery));

Version data entries

69 entries across 69 versions & 1 rubygems

Version Path
pageflow-14.1.1 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-14.1.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-14.0.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-14.0.0.rc2 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-14.0.0.rc1 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-14.0.0.beta3 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-14.0.0.beta2 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-14.0.0.beta1 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-13.6.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-13.5.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-13.4.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-13.3.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-13.2.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-12.6.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-13.1.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-12.5.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-12.4.1 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-13.0.0 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-13.0.0.rc1 app/assets/javascripts/pageflow/widgets/scroll_button.js
pageflow-12.4.0 app/assets/javascripts/pageflow/widgets/scroll_button.js