;(function($){
$.fn.picComplete = function(time,fn){
var that = this;
var timer = setInterval(function(){
var imgCount = that.length;
var hCount = 0;
that.each(function(i,obj){
if($(obj).height() != 0){
hCount++;
}
});
if(hCount == imgCount){
clearInterval(timer);
fn(that);
}
},time);
return this;
}
})(jQuery);
////////////////////////////////
$(function(){
getData();
$(window).scroll(function(){
if($(window).scrollTop() + $(window).height() >= $(document).height()){
getData();
}
});
$(window).resize(function(){
waterfall();
});
function waterfall(){
var col = parseInt($("#container").width() / (236 + 12));
var centerLeft = ($(window).width() - (248 * col - 12)) / 2;
$("#container").css("left",centerLeft);
var chArr = [];
$("li").picComplete(50,function(elements){
elements.each(function(i,obj){
if((i+1) > col){
var minHeight = Math.min.apply(null,chArr);
var minIndex = chArr.indexOf(minHeight);
$(obj).stop().animate({left:minIndex*248,top:minHeight + 12},400);
chArr[minIndex] += $(obj).height() + 12;
}
else{
$(obj).stop().animate({left:i*248,top:12},400);
chArr.push($(obj).height() + 12);
}
});
});
}
function getData(){
$.get("data.json",function(data){
$.each(data,function(i,obj){
$("<li><img src=\"img/"+obj.img+"\"></li>").appendTo("ul");
});
waterfall();
});
}
});