Sha256: 5119ee200e2cca565d8a458c00f4cf8eb729987de49f35ef6bbb6aaeb5d8e936

Contents?: true

Size: 1.87 KB

Versions: 3

Compression:

Stored size: 1.87 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 + document.body.scrollTop;

              if (windowScroll > (elementOffset + offset)) {
                if (value.done != true) {
                  var callbackFunc = new Function(callback);
                  callbackFunc();
                  value.done = true;
                }
              }
            }
          };
      }
    }, 100);


    // $(window).scroll(function () {
    //   var windowScroll = $(window).scrollTop() + $(window).height();

    //   $.each( options, function( i, value ){
    //     var selector = value.selector,
    //         offset = value.offset,
    //         callback = value.callback;

    //     if ($(selector).length != 0) {
    //       var elementOffset = $(selector).offset().top;

    //       if (windowScroll > (elementOffset + offset)) {
    //         if (value.done != true) {
    //           var callbackFunc = new Function(callback);
    //           callbackFunc();
    //           value.done = true;
    //         }
    //       }
    //     }

    //   });
    // });

  }

})(jQuery);

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
dae-material-0.0.1 app/assets/javascripts/materialize/scrollFire.js
materialize-sass-0.96.1 app/assets/javascripts/materialize/scrollFire.js
materialize-sass-0.96.0 app/assets/javascripts/materialize/scrollFire.js