c语言switch瀑布流,两种常见飞瀑流(定位的瀑布流与浮动的瀑布流)

本文介绍了两种常见的瀑布流布局实现方式,一种基于定位,另一种使用浮动。代码示例展示了如何在网页中实现类似蘑菇街、美丽说的瀑布流效果,并提供了测试用的JSON数据。在滚动事件中,通过AJAX加载更多内容,实现了无限滚动的效果。
摘要由CSDN通过智能技术生成

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

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

1.定位的瀑布流:

window.onload = function(){

var aLi = document.getElementsByTagName('li');

var aHeight = {L:[],C:[],R:[]};

for(var i=0;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

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

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

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

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

var list = json.list[i];

for(var j=0;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']}

]

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值