public/assets/materialize/scrollFire-51d8aca762cd14871dbf39aad2bc0213e799f1aa314e75c267fdfd92cfd87e0e.js
(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);