HTML:
<! DOCTYPEHtml>
<Html>
<Head>
<Metahttp-equiv="Content-type"Content="Text/html; Charset=utf-8 ">
<Title> Untitled Document </Title>
<Style>
Body {
Margin0;
}
#ul1 {
Width1080px
Margin100PX Auto0;
}
Li {
Width247px
List-style:None
FloatLeft
Margin-right:10px
}
Li Div {
Border1PX Solid#000;
Padding10px
Margin-bottom:10px
}
Li Div img {
Width225px
DisplayBlock
}
</Style>
<ScriptSrc="Ajax.js" ></Script>
<Script>
Window.OnLoad= function () {
VarOul= document.getElementById (' Ul1 ');
VarALi=Oul.getElementsByTagName (' Li ');
VarIlen=Ali.length;
VarIPage=1;
VarB= true;
Initializing data processing
GetList ();
function GetList () {
Ajax (' get ', ' getpics.php ', ' cpage= ' + IPage, function (data) {
var data = JSON. Parse (data);
if (! Data.length) {
//No data on subsequent
return;
}
for (VarI=0;I<Data.length;I++) {
Get the shortest-height Li
Var_index=Getshort ();
VarOdiv= document.CreateElement (' Div ');
VarOimg= document.CreateElement (' img ');
Oimg.src=data[I].preview;
OImg.style.width=' 225px ';
OImg.style.height=data[I].height* (225/data[I].width)+' PX ';
Odiv.AppendChild (OIMG);
VarOP= document.CreateElement (' P ');
Op.innerhtml=data[I].title;
Odiv.AppendChild (OP);
ali[_index].AppendChild (ODIV);
}
B= true;
});
}
Window.Onscroll= function () {
Var_index=Getshort ();
VarOLi=ali[_index];
var scrolltop = Document.documentElement.scrollTop | | document.body.scrollTop;
if (getTop (oLi) + oli.offsetheight < document.documentElement.clientHeight + ScrollTop) {
if (b) {
b = false;
IPage+ +;
getList ();
}
}
}
functionGetshort () {
VarIndex=0;
VarIh=ali[Index].offsetheight;
for (VarI=1;I<Ilen;I++) {
if (ali[I].offsetheight<IH) {
Index=I
Ih=ali[I].offsetheight;
}
}
ReturnIndex
}
functionGetTop (obj) {
VarITop=0;
while (obj) {
ITop+=Obj.offsettop;
Obj=Obj.offsetparent;
}
Returnitop;
}
}
</SCRIPT>
</head>
<BODY>
<ul id= <LI>
<li></li>
<li></LI>
<li></LI>
</UL>
</body>
</HTML>
result:
Waterfall Flow Layout principle