From 193465d0b49241bc2d841285821018edfcc817b1 Mon Sep 17 00:00:00 2001 From: Artem Sapegin Date: Mon, 1 Jul 2013 22:38:15 +0400 Subject: [PATCH] v0.2.2 --- component.json | 2 +- jquery.mosaicflow.min.js | 4 ++-- mosaicflow.jquery.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/component.json b/component.json index 6337e17..66e1609 100644 --- a/component.json +++ b/component.json @@ -1,6 +1,6 @@ { "name": "jquery.mosaicflow", - "version": "0.2.1", + "version": "0.2.2", "main": ["./jquery.mosaicflow.min.js"], "dependencies": { "jquery": ">=1.7" diff --git a/jquery.mosaicflow.min.js b/jquery.mosaicflow.min.js index 933edd7..e41c8f1 100644 --- a/jquery.mosaicflow.min.js +++ b/jquery.mosaicflow.min.js @@ -1,2 +1,2 @@ -/*! jQuery Mosaic Flow v0.2.0 by Artem Sapegin - http://sapegin.github.com/jquery.mosaicflow/ - Licensed MIT */ -(function(i){"function"==typeof define&&define.amd?define(["jquery"],i):i(jQuery)})(function(i){"use strict";function t(i,t){this.container=i,this.options=t,this.init()}function s(i){function t(i,t){return t.toUpper()}var s={},n=i.data();for(var e in n)s[e.replace(/-(\w)/g,t)]=n[e];return s}var n=0;i.fn.mosaicflow=function(n){var e=Array.prototype.slice.call(arguments,0);return this.each(function(){var o=i(this),h=o.data("mosaicflow");h?"string"==typeof n&&h[n](e[1]):(n=i.extend({},i.fn.mosaicflow.defaults,n,s(o)),h=new t(o,n),o.data("mosaicflow",h))})},i.fn.mosaicflow.defaults={itemSelector:"> *",columnClass:"mosaicflow__column",minItemWidth:240,itemHeightCalculation:"auto"},t.prototype={init:function(){this.__uid=n++,this.__uid_item_counter=0,this.items=this.container.find(this.options.itemSelector),this.columns=[],this.columnsHeights=[],this.itemsHeights={},this.tempContainer=i("
").css("visibility","hidden"),this.workOnTemp=!1,this.autoCalculation="auto"===this.options.itemHeightCalculation,this.container.append(this.tempContainer);var t=this;this.items.each(function(){var s=i(this),n=s.attr("id");n||(n=t.generateUniqueId(),s.attr("id",n))}),this.container.css("visibility","hidden"),this.autoCalculation?i(window).load(i.proxy(this.refill,this)):this.refill(),i(window).resize(i.proxy(this.refill,this))},refill:function(){this.numberOfColumns=Math.floor(this.container.width()/this.options.minItemWidth);var i=this.ensureColumns();i&&(this.fillColumns(),this.columns.filter(":hidden").remove()),this.container.css("visibility","visible")},ensureColumns:function(){var t=this.columns.length,s=this.numberOfColumns;if(this.tempContainer.width(this.container.width()),this.workingContainer=0===t?this.tempContainer:this.container,s>t)for(var n=s-t,e=0;n>e;e++){var o=i("
",{"class":this.options.columnClass});this.workingContainer.append(o)}else if(t>s){for(var h=t;h>=s;)this.columns.eq(h).hide(),h--;var a=t-s;this.columnsHeights.splice(this.columnsHeights.length-a,a)}return s!==t?(this.columns=this.workingContainer.find("."+this.options.columnClass),this.columns.each(function(){i(this).width(100/s+"%")}),!0):!1},fillColumns:function(){for(var i=this.numberOfColumns,t=this.items.length,s=0;i>s;s++){var n=this.columns.eq(s);this.columnsHeights[s]=0;for(var e=s;t>e;e+=i){var o=this.items.eq(e),h=0;n.append(o),h=this.autoCalculation?o.outerHeight():parseInt(o.find("img").attr("height"),10),this.itemsHeights[o.attr("id")]=h,this.columnsHeights[s]+=h}}this.levelBottomEdge(this.itemsHeights,this.columnsHeights),this.workingContainer===this.tempContainer&&this.container.append(this.tempContainer.children()),this.container.trigger("mosaicflow-layout")},levelBottomEdge:function(t,s){for(;;){var n=i.inArray(Math.min.apply(null,s),s),e=i.inArray(Math.max.apply(null,s),s);if(n===e)return;var o=this.columns.eq(e).children().last(),h=t[o.attr("id")],a=s[n],r=s[e],l=a+h;if(l>=r)return;this.columns.eq(n).append(o),s[e]-=h,s[n]+=h}},add:function(t){var s=i.inArray(Math.min.apply(null,this.columnsHeights),this.columnsHeights),n=0;this.autoCalculation?(t.css({position:"absolute",visibility:"hidden",display:"block"}).appendTo("body"),n=t.outerHeight(),t.detach().css({position:"static",visibility:"visible"})):n=parseInt(t.find("img").attr("height"),10),t.attr("id")||t.attr("id",this.generateUniqueId());var e=[];this.items.each(function(){e.push(this)}),e.push(t[0]),this.items=i(e),this.itemsHeights[t.attr("id")]=n,this.columnsHeights[s]+=n,this.columns.eq(s).append(t),this.levelBottomEdge(this.itemsHeights,this.columnsHeights),this.container.trigger("mosaicflow-layout")},remove:function(i){var t=i.parents("."+this.options.columnClass);this.columnsHeights[t.index()]-=this.itemsHeights[i.attr("id")],i.detach(),this.items=this.items.not(i),this.levelBottomEdge(this.itemsHeights,this.columnsHeights),this.container.trigger("mosaicflow-layout")},generateUniqueId:function(){return this.__uid_item_counter++,"mosaic-"+this.__uid+"-itemid-"+this.__uid_item_counter}},i(function(){i(".mosaicflow").mosaicflow()})}); \ No newline at end of file +/*! jQuery Mosaic Flow v0.2.2 by Artem Sapegin - http://sapegin.github.com/jquery.mosaicflow/ - Licensed MIT */ +(function(i){"function"==typeof define&&define.amd?define(["jquery"],i):i(jQuery)})(function(i){"use strict";function t(i,t){this.container=i,this.options=t,this.init()}function s(i){function t(i,t){return t.toUpper()}var s={},n=i.data();for(var e in n)s[e.replace(/-(\w)/g,t)]=n[e];return s}var n=0;i.fn.mosaicflow=function(n){var e=Array.prototype.slice.call(arguments,0);return this.each(function(){var o=i(this),h=o.data("mosaicflow");h?"string"==typeof n&&h[n](e[1]):(n=i.extend({},i.fn.mosaicflow.defaults,n,s(o)),h=new t(o,n),o.data("mosaicflow",h))})},i.fn.mosaicflow.defaults={itemSelector:"> *",columnClass:"mosaicflow__column",minItemWidth:240,itemHeightCalculation:"auto"},t.prototype={init:function(){this.__uid=n++,this.__uid_item_counter=0,this.items=this.container.find(this.options.itemSelector),this.columns=i([]),this.columnsHeights=[],this.itemsHeights={},this.tempContainer=i("
").css("visibility","hidden"),this.workOnTemp=!1,this.autoCalculation="auto"===this.options.itemHeightCalculation,this.container.append(this.tempContainer);var t=this;this.items.each(function(){var s=i(this),n=s.attr("id");n||(n=t.generateUniqueId(),s.attr("id",n))}),this.container.css("visibility","hidden"),this.autoCalculation?i(window).load(i.proxy(this.refill,this)):this.refill(),i(window).resize(i.proxy(this.refill,this))},refill:function(){this.numberOfColumns=Math.floor(this.container.width()/this.options.minItemWidth),1>this.numberOfColumns&&(this.numberOfColumns=1);var i=this.ensureColumns();i&&(this.fillColumns(),this.columns.filter(":hidden").remove()),this.container.css("visibility","visible")},ensureColumns:function(){var t=this.columns.length,s=this.numberOfColumns;if(this.tempContainer.width(this.container.width()),this.workingContainer=0===t?this.tempContainer:this.container,s>t)for(var n=s-t,e=0;n>e;e++){var o=i("
",{"class":this.options.columnClass});this.workingContainer.append(o)}else if(t>s){for(var h=t;h>=s;)this.columns.eq(h).hide(),h--;var a=t-s;this.columnsHeights.splice(this.columnsHeights.length-a,a)}return s!==t?(this.columns=this.workingContainer.find("."+this.options.columnClass),this.columns.each(function(){i(this).width(100/s+"%")}),!0):!1},fillColumns:function(){for(var i=this.numberOfColumns,t=this.items.length,s=0;i>s;s++){var n=this.columns.eq(s);this.columnsHeights[s]=0;for(var e=s;t>e;e+=i){var o=this.items.eq(e),h=0;n.append(o),h=this.autoCalculation?o.outerHeight():parseInt(o.find("img").attr("height"),10),this.itemsHeights[o.attr("id")]=h,this.columnsHeights[s]+=h}}this.levelBottomEdge(this.itemsHeights,this.columnsHeights),this.workingContainer===this.tempContainer&&this.container.append(this.tempContainer.children()),this.container.trigger("mosaicflow-layout")},levelBottomEdge:function(t,s){for(;;){var n=i.inArray(Math.min.apply(null,s),s),e=i.inArray(Math.max.apply(null,s),s);if(n===e)return;var o=this.columns.eq(e).children().last(),h=t[o.attr("id")],a=s[n],r=s[e],l=a+h;if(l>=r)return;this.columns.eq(n).append(o),s[e]-=h,s[n]+=h}},add:function(t){var s=i.inArray(Math.min.apply(null,this.columnsHeights),this.columnsHeights),n=0;this.autoCalculation?(t.css({position:"absolute",visibility:"hidden",display:"block"}).appendTo("body"),n=t.outerHeight(),t.detach().css({position:"static",visibility:"visible"})):n=parseInt(t.find("img").attr("height"),10),t.attr("id")||t.attr("id",this.generateUniqueId()),this.items.add(t),this.itemsHeights[t.attr("id")]=n,this.columnsHeights[s]+=n,this.columns.eq(s).append(t),this.levelBottomEdge(this.itemsHeights,this.columnsHeights),this.container.trigger("mosaicflow-layout")},remove:function(i){var t=i.parents("."+this.options.columnClass);this.columnsHeights[t.index()-1]-=this.itemsHeights[i.attr("id")],i.detach(),this.items=this.items.not(i),this.levelBottomEdge(this.itemsHeights,this.columnsHeights),this.container.trigger("mosaicflow-layout")},empty:function(){var t=this.numberOfColumns;this.items=i([]),this.itemsHeights={};for(var s=0;t>s;s++){var n=this.columns.eq(s);this.columnsHeights[s]=0,n.empty()}this.container.trigger("mosaicflow-layout")},generateUniqueId:function(){return this.__uid_item_counter++,"mosaic-"+this.__uid+"-itemid-"+this.__uid_item_counter}},i(function(){i(".mosaicflow").mosaicflow()})}); \ No newline at end of file diff --git a/mosaicflow.jquery.json b/mosaicflow.jquery.json index 4ecd7ee..50b0ae0 100644 --- a/mosaicflow.jquery.json +++ b/mosaicflow.jquery.json @@ -9,7 +9,7 @@ "responsive", "columns" ], - "version": "0.2.1", + "version": "0.2.2", "author": { "name": "Artem Sapegin", "email": "artem@sapegin.ru",