Per desandro/masonry#496, items that are isHidden should not need to be laid out. Consider changing _getItemsForLayout to
Masonry.prototype._getItemsForLayout = function( items ) {
var layoutItems = [];
for ( var i=0, len = items.length; i < len; i++ ) {
var item = items[i];
if ( !item.isIgnored && !item.isHidden ) {
layoutItems.push( item );
}
}
return layoutItems;
};