Sha256: 51d8aca762cd14871dbf39aad2bc0213e799f1aa314e75c267fdfd92cfd87e0e

Contents?: true

Size: 1.4 KB

Versions: 26

Compression:

Stored size: 1.4 KB

Contents

(function($) {

  // Input: Array of JSON objects {selector, offset, callback}

  Materialize.scrollFire = function(options) {

    var didScroll = false;

    window.addEventListener("scroll", function() {
      didScroll = true;
    });

    // Rate limit to 100ms
    setInterval(function() {
      if(didScroll) {
          didScroll = false;

          var windowScroll = window.pageYOffset + window.innerHeight;

          for (var i = 0 ; i < options.length; i++) {
            // Get options from each line
            var value = options[i];
            var selector = value.selector,
                offset = value.offset,
                callback = value.callback;

            var currentElement = document.querySelector(selector);
            if ( currentElement !== null) {
              var elementOffset = currentElement.getBoundingClientRect().top + window.pageYOffset;

              if (windowScroll > (elementOffset + offset)) {
                if (value.done !== true) {
                  if (typeof(callback) === 'function') {
                    callback.call(this, currentElement);
                  } else if (typeof(callback) === 'string') {
                    var callbackFunc = new Function(callback);
                    callbackFunc(currentElement);
                  }
                  value.done = true;
                }
              }
            }
          }
      }
    }, 100);
  };

})(jQuery);

Version data entries

26 entries across 26 versions & 4 rubygems

Version Path
jera_push-2.1.4 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-2.1.3 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-2.1.2 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-2.0.0 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.2.4 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.2.3 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.2.1 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.1.7 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.1.6 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.1.5 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.1.4 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.1.3 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.1.2 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.1.1 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.1.0 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.0.3 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.0.2 app/assets/javascripts/jera_push/materialize/scrollFire.js
mtl-1.1.0 vendor/assets/javascripts/materialize/scrollFire.js
jera_push-1.0.1.1 app/assets/javascripts/jera_push/materialize/scrollFire.js
jera_push-1.0.1 app/assets/javascripts/jera_push/materialize/scrollFire.js