用初级js欣赏怒江瀑布的布局
1。JS代码:
瀑布的代码
主{
职位:相对;
保证金:汽车;
宽度:PX;
溢出:隐藏;
}
。WF WF CLD {主。
位置:绝对;
边距底部:PX;
填充:PX;
宽度:PX;
左:- PX;
顶部:- PX;
线高:PX;
边境:PX固体#;
边框半径:像素;
背景颜色:# CCC;
溢出:隐藏;
}
内{。WF CLD。
位置:绝对的;
左:- PX;
顶部:- PX;
边距底部:PX;
宽度:PX;
溢出:隐藏;
Border: PX solid #f;
边框半径:像素;
}
标题{。WF CLD。
保证金:PX;
填充:PX;
宽度:PX;
颜色:# F;
字体大小:PX;
}
瀑布
内部的瀑布
—
—
—
—
—
—
—
—
—
函数(参数){瀑布
param.container this.id =类型= 'string' document.getelementbyid(参数。容器):param.container;
this.colwidth = param.colwidth;
this.colcount = param.colcount | |;
this.cls = param.cls param.cls!=参数。答:'wf-cld;
This.init();
}
waterfall.prototype = { {
GetByClass:功能(CLS,P){
var arr = { },REG =新(regexp(^ | +)+ CLS +( + |美元)
无功节点= p.getelementsbytagname(*),nodes.length len =;
对于(var i;= i;i;+;+){
如果(reg.test(节点{我}。className)){
Arr.push(结{我});
reg.lastindex =;
}
}
报酬;
},
MaxArr:功能(ARR){
VaR len = arr.length,温度= ARR { };
对于(var ii;ii;
如果(温度<ARR {二}){
温度= {二} ARR;
}
}
回复;
},
GetMar:功能(节点){
var;
如果(节点。currentstyle){
DIS = parseInt(节点。currentstyle。marginbottom);
} else if(文件。defaultview){
DIS = parseInt(document.defaultview.getcomputedstyle(节点、空)。MarginBottom);
}
收益分布;
},
GetMinCol:功能(ARR){
Var ca = ARR,CL = ca.length,温度= CA {},明克=;
用于(var CI = CI;CL;CI + +){
如果(温度> ca { }){
温度= CI };
明克=词;
}
}
返回明克;
},
init:函数(){
无功_this =这;
VaR col = {}, / /列高
IARR = {}; / /指数
无功节点= _this.getbyclass(_this.cls,_this。ID),len = nodes.length;
对于(var i =;i < _this.colcount;i++){
{ };
}
对于(var i;= i;i;+;+){
结{我},{我} H =节点。offsetheight + _this.getmar(节点{我});
IARR {我} =我;
}
对于(var i;= i;i;+;+){
无功明= _this.getmincol(COL);
结{我}。style.left =明* _this.colwidth +PX;
结{我}。style.top = Col {明} +PX;
{节点};
}
_this.id.style.height = _this.maxArr (Col) + PX;
}
};
新瀑布({
容器:WF内部
colwidth :,
ColCount、:,
:内部
});
新瀑布({
容器:WF主
colwidth :,
ColCount、:
});
2。{ }瀑布流