Sha256: cadadb47b9b63f1a44d01646729563a271790d07dc9864140a3f6da9d918bfd3
Contents?: true
Size: 1.57 KB
Versions: 13
Compression:
Stored size: 1.57 KB
Contents
(function($) { var scrollFireEventsHandled = false; // Input: Array of JSON objects {selector, offset, callback} Materialize.scrollFire = function(options) { var onScroll = function() { 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; } } } } }; var throttledScroll = Materialize.throttle(function() { onScroll(); }, options.throttle || 100); if (!scrollFireEventsHandled) { window.addEventListener("scroll", throttledScroll); window.addEventListener("resize", throttledScroll); scrollFireEventsHandled = true; } // perform a scan once, after current execution context, and after dom is ready setTimeout(throttledScroll, 0); }; })(jQuery);
Version data entries
13 entries across 13 versions & 2 rubygems