cms/drupal/sites/all/modules/masonry/masonry.js
changeset 541 e756a8c72c3d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/drupal/sites/all/modules/masonry/masonry.js	Fri Sep 08 12:04:06 2017 +0200
@@ -0,0 +1,70 @@
+/**
+ * @file
+ * Masonry script.
+ */
+
+(function($) {
+
+Drupal.behaviors.masonry = {
+  attach: function(context, settings) {
+
+    // Iterate through all Masonry instances
+    $.each(Drupal.settings.masonry, function (container, settings) {
+      // Set container
+      var $container = $(container);
+
+      // Set options
+      var $options = new Object();
+      if (settings.item_selector) {
+        $options.itemSelector = settings.item_selector;
+      }
+      if (settings.column_width) {
+        if (settings.column_width_units == 'px') {
+          $options.columnWidth = parseInt(settings.column_width);
+        }
+        else if (settings.column_width_units == '%') {
+          $options.columnWidth = ($container.width() * (settings.column_width / 100)) - settings.gutter_width ;
+        }
+        else {
+          $options.columnWidth = settings.column_width;
+      }
+        }
+      if (settings.stamp) {
+        $options.stamp = settings.stamp;
+      }
+      $options.gutter = settings.gutter_width;
+      $options.isResizeBound = settings.resizable;
+      $options.isFitWidth = settings.fit_width;
+      if (settings.rtl) {
+        $options.isOriginLeft = false;
+      }
+      if (settings.animated) {
+        $options.transitionDuration = settings.animation_duration + 'ms';
+      }
+      else {
+        $options.transitionDuration = 0;
+      }
+
+      // Apply Masonry to container
+      if (settings.images_first) {
+        $container.imagesLoaded(function () {
+          if ($container.hasClass('masonry-processed')) {
+            $container.masonry('reloadItems').masonry('layout');
+          }
+          else {
+            $container.once('masonry').masonry($options);
+          }
+        });
+      }
+      else {
+        if ($container.hasClass('masonry-processed')) {
+          $container.masonry('reloadItems').masonry('layout');
+        }
+        else {
+          $container.once('masonry').masonry($options);
+        }
+      }
+    });
+  }
+};
+})(jQuery);