From 0b1ff24b4fcd642f2e061567d9fcba7d22c49efd Mon Sep 17 00:00:00 2001 From: David DeSandro Date: Sat, 30 Oct 2010 18:50:48 -0400 Subject: [PATCH] _create method complete --- src/jquery.molequul-widget.js | 87 ++++------------------------------- src/jquery.ui.widget.js | 2 +- 2 files changed, 10 insertions(+), 79 deletions(-) diff --git a/src/jquery.molequul-widget.js b/src/jquery.molequul-widget.js index 6187675..fa677f0 100644 --- a/src/jquery.molequul-widget.js +++ b/src/jquery.molequul-widget.js @@ -127,7 +127,8 @@ // console.log( this.options.layoutMode ) // do any layout-specific setup - this.$elem.molequul( '_' + this.options.layoutMode + 'Setup' ); + this.width = this.$elem.width(); + this._getMasonryColCount(); // save data // this.data( 'molequul', props ); @@ -356,17 +357,17 @@ }); }, - getMasonryColCount : function( props ) { - props.colW = props.opts.columnWidth || props.atoms.$all.outerWidth(true); + _getMasonryColCount : function( ) { + // console.log( 'getting masonry col count') + this.colW = this.options.columnWidth || this.atoms.$all.outerWidth(true); // if colW == 0, back out before divide by zero - if ( !props.colW ) { + if ( !this.colW ) { window.console && console.error('Column width calculated to be zero. Stopping Molequul plugin before divide by zero. Check that the width of first child inside the molequul container is not zero.'); return this; } - props.width = this.width(); - props.colCount = Math.floor( props.width / props.colW ) ; - props.colCount = Math.max( props.colCount, 1 ); + this.colCount = Math.floor( this.width / this.colW ) ; + this.colCount = Math.max( this.colCount, 1 ); return this; }, @@ -399,7 +400,7 @@ return this; }, - masonrySetup : function( props ) { + _masonrySetup : function( props ) { this.molequul('getMasonryColCount', props ); return this; }, @@ -529,76 +530,6 @@ // ====================== Setup and Init ====================== - // only run though on initial init - setup : function( props ) { - - props.atoms = {}; - props.isNew = {}; - props.styleQueue = []; - props.elemCount = 0; - // need to get atoms - props.atoms.$all = props.opts.selector ? - this.find( props.opts.selector ) : - this.children(); - - this.css({ - overflow : 'hidden', - position : 'relative' - }); - - var jQueryAnimation = false; - - // get applyStyleFnName - switch ( props.opts.animationEngine.toLowerCase().replace( /[ _\-]/g, '') ) { - case 'none' : - props.applyStyleFnName = 'css'; - break; - case 'jquery' : - props.applyStyleFnName = 'animate'; - jQueryAnimation = true; - break; - case 'bestavailable' : - default : - props.applyStyleFnName = Modernizr.csstransitions ? 'css' : 'animate'; - } - - props.usingTransforms = Modernizr.csstransforms && Modernizr.csstransitions && !jQueryAnimation; - - props.positionFn = props.usingTransforms ? $.molequul.translate : $.molequul.positionAbs; - - // sorting - var originalOrderSorter = { - 'original-order' : function( $elem ) { - return props.elemCount; - } - }; - props.opts.getSortData = $.extend( originalOrderSorter, props.opts.getSortData ); - - props.atoms.$all.molequul( 'setupAtoms', props ); - - - // get top left position of where the bricks should be - var $cursor = $( document.createElement('div') ); - this.prepend( $cursor ); - props.posTop = Math.round( $cursor.position().top ); - props.posLeft = Math.round( $cursor.position().left ); - $cursor.remove(); - - // add molequul class first time around - var $container = this; - setTimeout(function(){ - $container.addClass( props.opts.containerClass ); - }, 1 ); - - // do any layout-specific setup - this.molequul( props.opts.layoutMode + 'Setup', props ); - - // save data - this.data( 'molequul', props ); - - return this; - }, - watchedProps : [ 'filter', 'sortBy', 'sortDir', 'layoutMode' ], init : function( options, callback ) { diff --git a/src/jquery.ui.widget.js b/src/jquery.ui.widget.js index 805771c..7c555e2 100644 --- a/src/jquery.ui.widget.js +++ b/src/jquery.ui.widget.js @@ -58,4 +58,4 @@ }; }; -})( jQuery ); \ No newline at end of file +})( jQuery );