博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
瀑布流
阅读量:5268 次
发布时间:2019-06-14

本文共 725 字,大约阅读时间需要 2 分钟。

在慕课网上,又get到一个新的知识点,即实现网站中不同高度的块级元素在父元素下自适应排列,以达到统一的网页视觉效果的一种WEB技术。

实现的原理:

1.通过计算(页面宽度/单个图片div宽度=列数)得到显示的列数

2.定义一个数组arr,数组的长度即列数,用来保存列高度,初始值都为0

3.查找数组最小值索引赋给minIndex

4.图片盒子.left=minIndex*单个元素宽度

5.图片盒子.top=arr[minIndex]

6.更新 arr[minIndex]+=图片盒子.offsetHeight,判断是不是最后一个图片盒子,如果不是,跳到3。如果是则结束。

 

需要重点理解的是关于minIndex的使用,即minIndex的查找、使用、更新

查找:查找哪一列的高度最低,用来放置新的图片盒子

使用:设置新的图片盒子的绝对定位

更新:更新列的高度

Demo:http://htmlpreview.github.io/?https://github.com/Tanlifan/Study-and-Demo/blob/master/Waterfall/index.html

代码地址:https://github.com/Tanlifan/Study-and-Demo/tree/master/Waterfall

效果图:

可以通过window.onresize来监听窗口事件,用来更新列数,即列的数量随着窗口宽度大小变化

通过window.onscroll来监听滚动条时间,用来添加更多节点到DOM中来实现加载新的图片盒子

具体请看代码

转载于:https://www.cnblogs.com/tanlifan/p/5967394.html

你可能感兴趣的文章
帧的最小长度 CSMA/CD
查看>>
树状数组及其他特别简单的扩展
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
【洛谷P1816 忠诚】线段树
查看>>
电子眼抓拍大解密
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
51nod1076 (边双连通)
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
2019春 软件工程实践 助教总结
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
java实现哈弗曼树
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
HDU 2548 A strange lift
查看>>
Linux服务器在外地,如何用eclipse连接hdfs
查看>>