直接上代码

<!DOCTYPE html>

<html lang=\"大众en\"大众>

php加jq瀑布流JQ实现简略的瀑布流结构 Docker

<head>

<meta charset=\"大众UTF-8\"大众>

<meta name=\公众viewport\公众 content=\"大众width=device-width, initial-scale=1.0\"大众>

<meta http-equiv=\"大众X-UA-Compatible\"大众 content=\"大众ie=edge\公众>

<title>瀑布流</title>

<style>

img {

border:none;

}

.wrapper {

width:1000px;

margin:0 auto;

}

.wrapper h3{

color:#3366cc;

font-size:16px;

height:35px;

line-height:1.9;

text-align:center;

border-bottom:1px solid #E5E5E5;

margin:0 0 10px 0;

}

#con1_1 {

position:relative;

}

#con1_1 .product_list {

position:absolute;

left:0px;

top:0px;

overflow: hidden;

background:#eee;

margin:5px;

cursor: pointer;

border-top-left-radius: 8px;

border-top-right-radius: 8px;

}

.product_list img {

width:200px;

}

.product_list p {

padding:5px 0px;

font-size:12px;

text-align:center;

color:#333;

white-space:normal;

width:200px;

}

</style>

</head>

<body>

<div class=\公众wrapper\公众>

<h3>蘑菇街</h3>

<div id=\公众con1_1\"大众>

</div>

</div>

<script src=\"大众js/jquery-1.11.0.js\"大众></script>

<script type=\"大众text/javascript\公众>

// 自己仿照的数据

var data ={

\公众1\"大众:{

id:1,

img:\"大众img1.jpg\"大众,

info_dec:\公众今年的宫廷风真的是好看到弗成 驾驭也超大略\"大众

},

\"大众2\公众:{

id:2,

img:\"大众img2.jpg\"大众,

info_dec:\"大众格局都显腰身又遮肉 搭配一件短毛的外套\公众

},

\公众3\公众:{

id:3,

img:\"大众img3.jpg\公众,

info_dec:\公众舒适又不减时尚 随意的搭配小单品\公众

},

\公众4\"大众:{

id:4,

img:\公众img4.jpg\公众,

info_dec:\"大众过年走亲戚都夸的优雅风鸭\"大众

},

\"大众5\公众:{

id:5,

img:\"大众img5.jpg\"大众,

info_dec:\"大众既适宜通勤又适宜日常~鞋子和包包都是我平时常搭配的款\"大众

},

\"大众6\"大众:{

id:6,

img:\公众img6.jpg\"大众,

info_dec:\公众久等啦,战狼女孩闪现✨前一天还不太适应沙漠,但一早起来看到日出真的超美,瞬间好心情!
换身最大略不过的白T+牛仔裤+球鞋,come on来拍一张!
\"大众

},

\公众7\"大众:{

id:7,

img:\"大众img7.jpg\"大众,

info_dec:\"大众黄色小白鞋 鞋型很显脚瘦 走路又轻便 鞋带春天迎春花的颜色~满满的活力 颜色清新百搭的小白鞋 你get了吗?整体黄色系为主 就不会很乱呢休闲穿搭❤️\公众

},

\"大众8\公众:{

id:8,

img:\公众img8.jpg\"大众,

info_dec:\"大众外搭是一件菱格马甲,针织毛线的,学院风很浓,试穿S码合身。
外套是一件黄色的牛角扣连帽大衣,宽松的格局,试穿S码合身,长度对小个子也还算友好。
<br>\公众

},

\"大众9\"大众:{

id:9,

img:\"大众img9.jpg\"大众,

info_dec:\公众我为开春做了哪些准备#复古学院风的牛角扣大衣穿搭Hello大家好,这里是大鱼穿搭测评第645期,这一期和大家分享的是牛角扣外套穿搭。
\"大众

},

\"大众10\"大众:{

id:10,

img:\"大众img10.jpg\"大众,

info_dec:\"大众❤️身高体重163|43,给大家做个参考。
:内搭是米色元宝领衬衣,减龄复古,百搭的格局啦。
\公众

},

\"大众11\公众:{

id:11,

img:\"大众img11.jpg\"大众,

info_dec:\"大众:鞋子是有跟的乐福鞋,比较日系复古百搭,推举啦。
❤️喜好记得给我点赞留言哦!

\"大众

},

\"大众12\"大众:{

id:12,

img:\公众img12.jpg\"大众,

info_dec:\"大众:内搭的半身裙是蓝色格子的百褶裙,短款有里衬,显瘦高型腰A字版。
\"大众

},

\"大众13\公众:{

id:13,

img:\公众img13.jpg\"大众,

info_dec:\"大众上身胖的MM不用再愁冬天怎么穿啦!
最显瘦的穿搭指南在这里!
\"大众

}

,

\"大众14\公众:{

id:14,

img:\"大众img14.jpg\公众,

info_dec:\"大众亮橙色毛衣搭配绿色格纹围巾很有辨识度~ 搭配晒伤仿妆在冬日也要散发阳光能量\"大众

},

\公众15\公众:{

id:15,

img:\"大众img15.jpg\"大众,

info_dec:\"大众这是我参加小年会的dress code,all black玄色主题♠️我在玄色里加入了bling bling的金属色让全体look看着不会过于沉重,来自MXU的修身设计春款外套真的超级显瘦,肩部开叉和斜侧系带增加设计感,金属色鞋子与内搭相呼应,让整体搭配舒畅且折衷~\"大众

},

\"大众16\"大众:{

id:16,

img:\公众img16.jpg\"大众,

info_dec:\公众少女感赛高,过年就靠它取胜了\"大众

}

}

// 遍历数据插入构造里

$(function(){

var str = \"大众\"大众;

for(var attr in data){

//console.log(data[attr].img);

str += `

<div class=\"大众product_list\"大众>

<a href=\"大众#\公众><img src=\"大众images/${data[attr].img}\"大众/></a>

<p>${data[attr].info_dec}</p>

</div>

`

}

$(\"大众#con1_1\公众).html(str);

/

事理:1.把所有的li的高度值放到数组里面

2.第一行的top都为0

3.打算高度值最小的值是哪个li

4.把接下来的li放到那个li的下面

/

var margin = 10;//设置间距

var li=$(\"大众.product_list\公众);//区块名称

var li_W = li[0].offsetWidth+margin;//取区块的实际宽度

function liuxiaofan(){

var h=[];//记录区块高度的数组

var n = 960/li_W|0;

for(var i = 0;i < li.length;i++) {

li_H = li[i].offsetHeight;//获取每个li的高度

if(i < n) {//n是一行最多的li,以是小于n便是第一行了

max_H =Math.max.apply(null,h);

h[i]=li_H;//把每个li放到数组里面

li.eq(i).css(\公众top\公众,0);//第一行的Li的top值为0

li.eq(i).css(\"大众left\"大众,i li_W);//第i个li的左坐标便是ili的宽度

}

else{

min_H =Math.min.apply(null,h) ;//取得数组中的最小值,区块中高度值最小的那个

minKey = getarraykey(h, min_H);//最小的值对应的指针

h[minKey] += li_H+margin ;//加上新高度后更新高度值

li.eq(i).css(\公众top\公众,min_H+margin);//先得到高度最小的Li,然后把接下来的li放到它的下面

li.eq(i).css(\"大众left\公众,minKey li_W); //第i个li的左坐标便是ili的宽度

}

// $(\"大众p\"大众).eq(i).text(\"大众高度:\公众+li_H);//把区块高度值写入对应的区块H2标题里面

}

max =Math.max.apply(null,h) ;

$(\"大众#con1_1\公众).css(\"大众height\公众,max);

}

/ 利用for in运算返回数组中某一值的对应项数(比如算出最小的高度值是数组里面的第几个) /

function getarraykey(s, v) {for(k in s) {if(s[k] == v) {return k;}}}

/这里一定要用onload,由于图片不加载完就不知道高度值/

window.onload = function() {liuxiaofan();};

window.onresize = function() {liuxiaofan();};

//鼠标在上样式

$(function(){

$(\"大众.product_list\公众).hover(function(){

$(this).css(\公众background-color\公众,\"大众#ddd\"大众);

},function() {

$(this).css(\公众background-color\"大众,\"大众#eee\"大众);

});

});

})

</script>

</body>

</html>

效果图:(实在也可以边向下滚动边加载,大家可以自己写下。