使用JavaScript实现简单的瀑布流
2018-01-23 20:04
253 查看
效果截图
基本思路
每行展示固定数目的图片(假设为5),第一行从左至右依次展示5张图片,第6张放在前5张中高度最小的那张下方,第7张放在前6张中整体高度最小的那张下方,第8张放在前7张中整体高度最小的那张下方.......
整体高度:每一列的所有图片高度之和 以及padding、margin、border(如果有的话)之和
代码部分
HTML
CSS
JavaScript
基本思路
每行展示固定数目的图片(假设为5),第一行从左至右依次展示5张图片,第6张放在前5张中高度最小的那张下方,第7张放在前6张中整体高度最小的那张下方,第8张放在前7张中整体高度最小的那张下方.......
整体高度:每一列的所有图片高度之和 以及padding、margin、border(如果有的话)之和
代码部分
HTML
<div id="main"> <div class="box"> <div class="pic"> <img src="../images/2.jpg"> </div> </div> <div class="box"> <div class="pic"> <img src="../images/1.jpg"> </div> </div> <div class="box"> <div class="pic"> <img src="../images/2.jpg"> </div> </div> <div class="box"> <div class="pic"> <img src="../images/1.jpg"> </div> </div> </div>
CSS
#main{ position: relative; } .box{ padding-left:15px; padding-top:15px; float:left; } .pic{ padding:8px; border:1px solid #dcdcdc; border-radius:3px; box-shadow:0 0 5px #ccc; } .pic img{ width:230px; height:auto; }
JavaScript
window.onload=function(){ waterfall(); } function waterfall() { var box = document.getElementsByClassName("box"); var boxWidth = box[0].offsetWidth; // 图片本身宽度 与 各种 padding margin border 的和 var cols = 5;// 每行放5张图片 var boxHeight = []; for (var i = 0; i < box.length; i++) { if (i < cols) { boxHeight.push(box[i].offsetHeight) } else { var minHeight = Math.mi 4000 n.apply(null, boxHeight);//得到最小高度 var minHeightIndex = getminHeightIndex(boxHeight, minHeight); // 得到第一行高度最小的图片的位置 box[i].style.position = 'absolute'; box[i].style.top = minHeight + 'px'; box[i].style.left = boxWidth * minHeightIndex + 'px'; boxHeight[minHeightIndex] = box[i].offsetHeight + boxHeight[minHeightIndex] } } } function getminHeightIndex(boxHeight, minHeight) { for (var i = 0; i < boxHeight.length; i++) { if (boxHeight[i] == minHeight) { return i; } } }
相关文章推荐
- 使用javascript实现简单倒数计时功能
- 使用Javascript实现简单的Map
- PHP网站使用JavaScript和Iframe简单实现部分刷新效果
- JavaScript使用setInterval()函数实现简单轮询操作的方法
- 使用javascript实现简单的选项卡切换效果
- javascript使用smipleChart实现简单图表
- 使用Javascript实现一种简单的数字混淆功能(高手绕过)
- 使用JavaScript实现弹出层效果的简单实例
- 在javascript中使用com组件的简单实现方法
- 使用 JavaScript 实现简单候选项推荐功能(模糊搜索)【收藏】【转】
- 在javascript中使用com组件的简单实现方法
- 利用JavaScript实现简单的拖动层(只使用于IE)
- 使用 JavaScript 实现简单候选项推荐功能(模糊搜索)【收藏】【转】
- 使用javascript实现简单的选项卡切换效果
- javascript使用smipleChart实现简单图表
- ios开源框架——WebViewJavascriptBridge的简单使用 实现JS与iOS Native Code互调
- 使用Javascript简单实现图片无缝滚动
- 利用JavaScript实现简单的拖动层(只使用于IE)
- JavaScript使用自定义事件实现简单的模块化开发
- JavaScript使用setInterval()函数实现简单轮询操作的方法