html 瀑布流 编辑 删除,HTML瀑布流操作
瀑布流操作
*{
margin:0;
padding:0;
}
#container{
width:1200px;
margin:auto;
/*background-color: black;*/
position:relative;
}
#container img{
width:188px;
}
.outer{
margin:5px;
padding:5px;
border:solid 1px #888;
border-radius: 5px;
width:188px;
position:absolute;
top:0;
transition:5s;
}
.box{
border:solid 1px #efefef;
overflow:hidden;
border-radius:5px;
}
//
//window.onload方式将是一个良好的选择。window.onload是一个事件,当文档内容完全加载完成会触发该事件。
//onresize 事件会在窗口或框架被调整大小时发生。
window.onresize = function(){
//获取网页中所有的图片容器
var _outers = document.getElementsByClassName("outer");
//获取网页展示内容区域的宽度
// var _client_width = document.getElementById("container").offsetWidth;
// ===========================================
// 获取宽度,自动更改列
var _cw = document.body.offsetWidth;
var _container = document.getElementById('container');
_container.style.width = _cw * 0.8 + "px";
var _client_width = _container.offsetWidth;
console.log(_client_width);
// ================================================
//获取网页中图片容器的宽度
var _img_width = _outers[0].offsetWidth;
//计算一行能放几张图片
var _row_num = _client_width / _img_width;
//声明一个数组,记录每一列的高度
var _height = [];
//循环放置图片
for(var i=0;i<_outers.length>
if(i<_row_num>
//放置第一行图片
_outers[i].style.left = i * _img_width + "px";
_outers[i].style.top = 0 ;
//记录每一列的高度
_height.push(_outers[i].offsetHeight);
}else{
//获取最小高度
var _min_height = Math.min.apply(this,_height);
//获取索引位置
var _min_index = _height.indexOf(_min_height);
//定位图片位置
_outers[i].style.left = _min_index * _img_width + "px";
_outers[i].style.top = _min_height + "px";
//更新数组数据
_height[_min_index] += _outers[i].offsetHeight;
}
}
}