两种常见瀑布流(定位的瀑布流与浮动的瀑布流)

类似蘑菇街,美丽说网站的瀑布流

1.定位的瀑布流:
window.onload = function(){

var aLi = document.getElementsByTagName('li');
var aHeight = {L:[],C:[],R:[]};

for(var i=0;i<aLi.length;i++){
var iNow = i%3;

switch(iNow){
case 0:
aLi[i].style.left = '5px';
aHeight.L.push(aLi[i].offsetHeight);

var step = Math.floor(i/3);

if(!step){
aLi[i].style.top = 0;
}
else{
var sum = 0;
for(var j=0;j<step;j++){
sum += aHeight.L[j] + 5;
}
aLi[i].style.top = sum + 'px';
}

break;
case 1:
aLi[i].style.left = '240px';
aHeight.C.push(aLi[i].offsetHeight);

var step = Math.floor(i/3);

if(!step){
aLi[i].style.top = 0;
}
else{
var sum = 0;
for(var j=0;j<step;j++){
sum += aHeight.C[j] + 5;
}
aLi[i].style.top = sum + 'px';
}
break;
case 2:
aLi[i].style.left = '475px';
aHeight.R.push(aLi[i].offsetHeight);

var step = Math.floor(i/3);

if(!step){
aLi[i].style.top = 0;
}
else{
var sum = 0;
for(var j=0;j<step;j++){
sum += aHeight.R[j] + 5;
}
aLi[i].style.top = sum + 'px';
}
break;
}
}

};

2.浮动的瀑布流:
window.onload = function(){
var aUl = document.getElementsByTagName('ul');
var bBtn = true;

window.onscroll = function(){

var veiwHeight = document.documentElement.clientHeight;
var scrollY = document.documentElement.scrollTop || document.body.scrollTop;

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

var aLi = aUl[i].getElementsByTagName('li');

var lastLi = aLi[aLi.length-1];

if(posTop(lastLi) < veiwHeight + scrollY && bBtn){

bBtn = false;

ajax('data.js',function(str){

var json = eval('('+ str +')');

if(json.code){
bBtn = true;
}

for(var i=0;i<json.list.length;i++){
var list = json.list[i];

for(var j=0;j<list.src.length;j++){
var oLi = document.createElement('li');
oLi.innerHTML = '[img]'+ list.src[j] +'[/img]'+ list.title[j] +'
';
aUl[i].appendChild(oLi);
}

}

});

}

}
};



function posTop(obj){
var top = 0;

while(obj){
top += obj.offsetTop;
obj = obj.offsetParent;
}

return top;
}
};


所需测试的json数据:
{
code : 0,
list : [
{src:['img/1.jpg','img/2.jpg','img/3.jpg'],title:['222222222','222222222','222222222']},
{src:['img/4.jpg','img/5.jpg','img/6.jpg'],title:['222222222','222222222','222222222']},
{src:['img/7.jpg','img/8.jpg','img/9.jpg'],title:['222222222','222222222','222222222']}
]
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值