移动版瀑布流js

functionrandH(min,max) {

returnMath.floor(Math.random()*(max-min+1)+min);

}

varflow=document.getElementById("flow");

//左边距

varleftSpace=10;

//间距

varpaddingSpace=10;

//高度数组,保存每个li的高度

varhs=[];

//布局函数

//当我bol为假时,更新的数组

functionbuju(bol) {

//获取所有的li用于大小改变时,更新布局

varlis=document.getElementsByTagName("li");

//根据自己的documentElement.clientWidth计算出来你有多少列

varcols=parseInt(document.documentElement.clientWidth/200);

flow.style.width=cols*200;

//初始化列高数组

vararrH=[];

for(vari=0; i

arrH[i]=0;

}

//创建或者更新li

for(varj=0; j<20; j++) {

varli=lis[j]||document.createElement("li");

li.innerHTML=j;

varh=hs[j]||randH(100,300);

li.style.height=h+"px";

if(bol) {

hs.push(h);

}

//求最短列

varminH=arrH[0];

varminI=0;

for(vark=0; k

if(minH>arrH[k]) {

minH=arrH[k];

minI=k;

}

}

//设置left

li.style.left=leftSpace+minI*(200+paddingSpace)+"px";

//设置top

li.style.top=arrH[minI]+"px";

//第一次页面加载执行的时候,才执行appendChild添加

if(bol) {

flow.appendChild(li);

}

//更新高度

arrH[minI]=arrH[minI]+li.offsetHeight+paddingSpace;

}

}

//第一次创建这些li

buju(true);

window.onresize=function() {

//更新

buju(false);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 所谓瀑布流,就是图片分几列有规律的排列,但是这里的排列是有要求的,普通的浮动布局会使图片与图片之间有很多的空隙,这...
    小飞侠zzr阅读 4,233评论 0 0
  • 使用js来实现瀑布流效果 瀑布流的实现方法有很多种,我这次采用的是使用绝对定位的方法来实现。页面中包含一个容器ul...
    Bookish倩宝阅读 3,550评论 0 0
  • “选择不重要,关键是选择以后怎么做,那个process才是重要的。” 支配命运或被命运支配,选择命运或被命运选择。...
    DimSum阅读 1,837评论 0 2
  • 参与讨论全部联系卡死问题,发布流程规定必须确定。 修改登录问题,查找bug。最后打开手机日志很容易完成这个事情。效...
    仲伟阅读 1,670评论 0 0
  • 夕阳已经西下 晚霞,点缀着蓝天 我又独自来到海边 曾经两个人携手 如今我一个人独自徘徊 思念的泪水淋湿眼眸 不知远...
    美文小屋阅读 1,805评论 0 0

友情链接更多精彩内容