Skip to content

Commit

Permalink
Fixed issue 8
Browse files Browse the repository at this point in the history
  • Loading branch information
jonobr1 committed Jul 17, 2015
1 parent 1d908f2 commit bbf3715
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 36 deletions.
79 changes: 44 additions & 35 deletions j/jquery.stalactite.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@

return this.each(function() {

// Store "private" variables in this object.
if (!this._stalactite) {
this._stalactite = {};
}

var $this = $(this);
var packTimeout = null;
var $newElems = prep($this, options);
Expand All @@ -57,29 +62,35 @@
var row = params.row;

// Bind events for window resizing
if (options.fluid) {
if (options.fluid && !this._stalactite.listening) {
$this.css('width', 'auto');
$(window).bind('resize', function() {
this._stalactite.packTimeout = function() {
resizing = false;
packTimeout = null;
row = 0;
params = {
row: 0,
prevMinIndex: 0,
prevMaxIndex: 0,
i: 0
};
indexed = [];
pack($this, calculateOffset, params, options);
};
this._stalactite.resize = function() {
if (packTimeout) {
clearTimeout(packTimeout);
} else {
appendLoader($this);
}
resizing = true;
packTimeout = setTimeout(function() {
resizing = false;
packTimeout = null;
row = 0;
params = {
row: 0,
prevMinIndex: 0,
prevMaxIndex: 0,
i: 0
};
indexed = [];
pack($this, calculateOffset, params, options);
}, 2000);
});
packTimeout = setTimeout($this[0]._stalactite.packTimeout, 2000);
};
$(window).bind('resize', this._stalactite.resize);
this._stalactite.listening = true;
} else if (!options.fluid && this._stalactite.listening) {
// Stop listening to the window resize event.
$(window).unbind(this._stalactite.resize);
}

// Gather all assets in the element
Expand Down Expand Up @@ -115,11 +126,6 @@
function calculateOffset($content, origin, prevMinIndex, prevMaxIndex, i) {

if (i >= $content.length) {
if (indexed[prevThisIndex]) { // update
indexed[prevThisIndex] = $.extend(indexed[prevThisIndex], params);
} else { // push a new instance
indexed.push($.extend({ dom: $content.parent('div')[0] }, params));
}
options.complete.apply(this);
removeLoader(options);
return;
Expand All @@ -131,11 +137,16 @@
var $this = $($content[i]);
var $prev = $($content[i - 1]);

var outerWidth = $this.outerWidth(true);
var outerHeight = $this.outerHeight(true);
var owt = $this.outerWidth(true);
var oht = $this.outerHeight(true);
var owf = $this.outerWidth();
var ohf = $this.outerHeight();

var outerWidth = Math.max(owt, owf);
var outerHeight = Math.max(oht, ohf);

var hMargin = outerWidth - $this.outerWidth();
var vMargin = outerHeight - $this.outerHeight();
var hMargin = owt - owf;
var vMargin = oht - ohf;

var x1 = $this.offset().left - hMargin, x2 = x1 + outerWidth,
y1 = $this.offset().top - vMargin, y2 = y1 + outerHeight;
Expand Down Expand Up @@ -183,7 +194,7 @@

animateIn($this, {
opacity: 1,
marginTop: '+=' + offsetY
marginTop: offsetY
}, function() {
calculateOffset($content, origin, prevMinIndex, prevMaxIndex, i + 1);
});
Expand Down Expand Up @@ -235,15 +246,13 @@

function index($dom) {
var dom = $dom[0];
var iterator = -1;
for (var i = 0; i < indexed.length; i++) {
var d = indexed[i].dom;
if (dom === d) {
iterator = i;
break;
return i;
}
}
return iterator;
return -1;
}

function removeLoader(options) {
Expand Down Expand Up @@ -279,15 +288,15 @@

var $content = $dom.children().addClass(options.cssSelector);

var vMargin = $dom.outerHeight(true) - $dom.outerHeight();
var hMargin = $dom.outerWidth(true) - $dom.outerWidth();
var vMargin = ($dom.outerHeight(true) - $dom.outerHeight()) / 2;
var hMargin = ($dom.outerWidth(true) - $dom.outerWidth()) / 2;

var origin = {
x: $dom.offset().left - hMargin + ($dom.outerWidth(true) - $dom.width()) / 2,
y: $dom.offset().top - vMargin + ($dom.outerHeight(true) - $dom.height()) / 2
x: $dom.offset().left - hMargin,
y: $dom.offset().top - vMargin
};

callback.apply(this, [$content, origin, params.prevMinIndex, params.prevMaxIndex, params.i]);
callback.call(this, $content, origin, params.prevMinIndex, params.prevMaxIndex, params.i);

}

Expand Down
8 changes: 7 additions & 1 deletion j/jquery.stalactite.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit bbf3715

Please sign in to comment.