diff --git a/js/layout-mode.js b/js/layout-mode.js index a9d1a8e..599583d 100644 --- a/js/layout-mode.js +++ b/js/layout-mode.js @@ -88,7 +88,7 @@ function layoutModeDefinition( getSize, Outlayer ) { } // fall back to item of first element var firstItemSize = this.getFirstItemSize(); - this.rowHeight = firstItemSize && firstItemSize[ outerSize ] || + this[ segmentName ] = firstItemSize && firstItemSize[ outerSize ] || // or size of container this.isotope.size[ 'inner' + size ]; }; diff --git a/test/get-segment-size.js b/test/get-segment-size.js new file mode 100644 index 0000000..a6ed450 --- /dev/null +++ b/test/get-segment-size.js @@ -0,0 +1,38 @@ +( function() { + +'use strict'; + +test( 'LayoutMode.getSegmentSize', function() { + + var iso = new Isotope( '#get-segment-size', { + layoutMode: 'cellsByRow', + itemSelector: '.item', + cellsByRow: { + columnWidth: 17, + rowHeight: 23 + } + }); + + var cellsByRow = iso.modes.cellsByRow; + equal( cellsByRow.columnWidth, 17, 'explicit columnWidth option set' ); + equal( cellsByRow.rowHeight, 23, 'explicit rowHeight option set' ); + + // set element sizing + iso.options.cellsByRow.columnWidth = '.grid-sizer'; + iso.options.cellsByRow.rowHeight = '.grid-sizer'; + cellsByRow.getColumnWidth(); + cellsByRow.getRowHeight(); + equal( cellsByRow.columnWidth, 57, 'element sizing columnWidth' ); + equal( cellsByRow.rowHeight, 47, 'element sizing rowHeight' ); + + // default to first item + delete iso.options.cellsByRow.columnWidth; + delete iso.options.cellsByRow.rowHeight; + cellsByRow.getColumnWidth(); + cellsByRow.getRowHeight(); + equal( cellsByRow.columnWidth, 60, 'first item columnWidth' ); + equal( cellsByRow.rowHeight, 30, 'first item rowHeight' ); + +}); + +})(); diff --git a/test/index.html b/test/index.html index 89221ff..5e1f8c1 100644 --- a/test/index.html +++ b/test/index.html @@ -26,10 +26,12 @@ + +
@@ -74,5 +76,12 @@