Sha256: 96dabbb849f200445babdc97458150e480d66ca5f074b7e37389355aed6e852a

Contents?: true

Size: 1.75 KB

Versions: 13

Compression:

Stored size: 1.75 KB

Contents

(function ($) {

  $.fn.parallax = function () {
    var window_width = $(window).width();
    // Parallax Scripts
    return this.each(function(i) {
      var $this = $(this);
      $this.addClass('parallax');

      function updateParallax(initial) {
        var container_height;
        if (window_width < 601) {
          container_height = ($this.height() > 0) ? $this.height() : $this.children("img").height();
        }
        else {
          container_height = ($this.height() > 0) ? $this.height() : 500;
        }
        var $img = $this.children("img").first();
        var img_height = $img.height();
        var parallax_dist = img_height - container_height;
        var bottom = $this.offset().top + container_height;
        var top = $this.offset().top;
        var scrollTop = $(window).scrollTop();
        var windowHeight = window.innerHeight;
        var windowBottom = scrollTop + windowHeight;
        var percentScrolled = (windowBottom - top) / (container_height + windowHeight);
        var parallax = Math.round((parallax_dist * percentScrolled));

        if (initial) {
          $img.css('display', 'block');
        }
        if ((bottom > scrollTop) && (top < (scrollTop + windowHeight))) {
          $img.css('transform', "translate3D(-50%," + parallax + "px, 0)");
        }

      }

      // Wait for image load
      $this.children("img").one("load", function() {
        updateParallax(true);
      }).each(function() {
        if (this.complete) $(this).trigger("load");
      });

      $(window).scroll(function() {
        window_width = $(window).width();
        updateParallax(false);
      });

      $(window).resize(function() {
        window_width = $(window).width();
        updateParallax(false);
      });

    });

  };
}( jQuery ));

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
mtl-1.1.10 vendor/assets/javascripts/materialize/parallax.js
mtl-1.1.9 vendor/assets/javascripts/materialize/parallax.js
mtl-1.1.8 vendor/assets/javascripts/materialize/parallax.js
mtl-1.1.7 vendor/assets/javascripts/materialize/parallax.js
materialize-sass-0.99.0 app/assets/javascripts/materialize/parallax.js
mtl-1.1.6 vendor/assets/javascripts/materialize/parallax.js
materialize-sass-0.98.2 app/assets/javascripts/materialize/parallax.js
mtl-1.1.5 vendor/assets/javascripts/materialize/parallax.js
mtl-1.1.4 vendor/assets/javascripts/materialize/parallax.js
materialize-sass-0.98.1 app/assets/javascripts/materialize/parallax.js
mtl-1.1.2 vendor/assets/javascripts/materialize/parallax.js
materialize-sass-0.98.0 app/assets/javascripts/materialize/parallax.js
mtl-1.1.1 vendor/assets/javascripts/materialize/parallax.js