cms/drupal/sites/all/modules/masonry/masonry.js
changeset 541 e756a8c72c3d
equal deleted inserted replaced
540:07239de796bb 541:e756a8c72c3d
       
     1 /**
       
     2  * @file
       
     3  * Masonry script.
       
     4  */
       
     5 
       
     6 (function($) {
       
     7 
       
     8 Drupal.behaviors.masonry = {
       
     9   attach: function(context, settings) {
       
    10 
       
    11     // Iterate through all Masonry instances
       
    12     $.each(Drupal.settings.masonry, function (container, settings) {
       
    13       // Set container
       
    14       var $container = $(container);
       
    15 
       
    16       // Set options
       
    17       var $options = new Object();
       
    18       if (settings.item_selector) {
       
    19         $options.itemSelector = settings.item_selector;
       
    20       }
       
    21       if (settings.column_width) {
       
    22         if (settings.column_width_units == 'px') {
       
    23           $options.columnWidth = parseInt(settings.column_width);
       
    24         }
       
    25         else if (settings.column_width_units == '%') {
       
    26           $options.columnWidth = ($container.width() * (settings.column_width / 100)) - settings.gutter_width ;
       
    27         }
       
    28         else {
       
    29           $options.columnWidth = settings.column_width;
       
    30       }
       
    31         }
       
    32       if (settings.stamp) {
       
    33         $options.stamp = settings.stamp;
       
    34       }
       
    35       $options.gutter = settings.gutter_width;
       
    36       $options.isResizeBound = settings.resizable;
       
    37       $options.isFitWidth = settings.fit_width;
       
    38       if (settings.rtl) {
       
    39         $options.isOriginLeft = false;
       
    40       }
       
    41       if (settings.animated) {
       
    42         $options.transitionDuration = settings.animation_duration + 'ms';
       
    43       }
       
    44       else {
       
    45         $options.transitionDuration = 0;
       
    46       }
       
    47 
       
    48       // Apply Masonry to container
       
    49       if (settings.images_first) {
       
    50         $container.imagesLoaded(function () {
       
    51           if ($container.hasClass('masonry-processed')) {
       
    52             $container.masonry('reloadItems').masonry('layout');
       
    53           }
       
    54           else {
       
    55             $container.once('masonry').masonry($options);
       
    56           }
       
    57         });
       
    58       }
       
    59       else {
       
    60         if ($container.hasClass('masonry-processed')) {
       
    61           $container.masonry('reloadItems').masonry('layout');
       
    62         }
       
    63         else {
       
    64           $container.once('masonry').masonry($options);
       
    65         }
       
    66       }
       
    67     });
       
    68   }
       
    69 };
       
    70 })(jQuery);