码迷,mamicode.com
首页 > 编程语言 > 详细

瀑布流JavaScript

时间:2016-07-13 15:31:43      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

window.onload=function(){

waterfall("container","box");

var imgData={"data":[{"src":"1.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"},{"src":"6.jpg"},{"src":"7.jpg"}]};

window.onscroll=function(){

if(checkFlag()){

var cparent=document.getElementById("container");

for(var i=0;i<imgData.data.length;i++){

var ccontent=document.createElement("div");

ccontent.className="box";

cparent.appendChild(ccontent);

var boximg=document.createElement("div");

boximg.className="box_img";

ccontent.appendChild(boximg);

var img=document.createElement("img");

img.src="img/"+imgData.data[i].src;

boximg.appendChild(img);

}

waterfall("container","box");

}

 

}

}

 

function checkFlag(){

var cparent=document.getElementById("container");

var ccontent=getChildElement(cparent,"box");

var lastContentHeight=ccontent[ccontent.length-1].offsetTop;

var scrolltop=document.documentElement.scrollTop ||document.body.scrollTop;

var pageHeight=document.documentElement.clientHeight||document.body.clientHeight;

if(lastContentHeight<scrolltop+pageHeight){

return true;

}

}

 

function waterfall(parent,content){

var cparent=document.getElementById(parent);

var ccontent=getChildElement(cparent,content);

var imgWidth=ccontent[0].offsetWidth;

var num=Math.floor(document.documentElement.clientWidth/imgWidth);

cparent.style.cssText="width:"+imgWidth*num+"px;margin:0 auto";

 

var boxHeightArr=[];

for(var i=0;i<ccontent.length;i++){

if(i<num){

boxHeightArr[i]=ccontent[i].offsetHeight;

}else{

var minHeight=Math.min.apply(null,boxHeightArr);

var minIndex=getminheightLocation(boxHeightArr,minHeight);

ccontent[i].style.position="absolute";

ccontent[i].style.top=minHeight+"px";

ccontent[i].style.left=ccontent[minIndex].offsetLeft+"px";

boxHeightArr[minIndex]=boxHeightArr[minIndex]+ccontent[i].offsetHeight;

}

}

}

function getminheightLocation(boxHeightArr,minHeight){

for(var i in boxHeightArr){

if(boxHeightArr[i]==minHeight){

return i;

}

}

}

 

 

function getChildElement(parent,content){

var contentArr=[];

var allcontent=parent.getElementsByTagName("*");

for(var i=0;i<allcontent.length;i++){

if(allcontent[i].className==content){

contentArr.push(allcontent[i]);

}

}

return contentArr;

}

 

瀑布流JavaScript

标签:

原文地址:http://www.cnblogs.com/daisy-x/p/5666648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!