jQuery实现瀑布流

这几天做比赛项目的时候要写一个表白墙,用了瀑布流的方式实现,现在来说一下这个瀑布流是怎么实现的。

瀑布流是什么就不再说了,不知道的可以看看这个:点击打开链接

现在说说瀑布流的原理:

将容器设置为相对布局,里面摆放的div为绝对布局。

先计算一行最多容纳几个div 而后将第一行摆满div,将他们的高度存入数组

找出第一行中高度最小的div,第二行中的div距离顶部的距离就是该高度+留白,而后更新数组

重复

这样就基本实现瀑布流了

代码:

html:

<!DOCTYPE html >
< html >
< head >
< title >约课-表白墙 </ title >
< script src= "http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js" ></ script >
< link rel= "stylesheet" href= "http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css" >
< link href= "../bin/css/style.css" rel= "stylesheet" type= "text/css" media= "all" />   
< meta name= "viewport" content= "width=device-width, initial-scale=1" >
< meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" />
</ head >
< body style= "background: url(../src/images/bg.jpg);" >
<!--头部-->
< div id= "love-header" >
< div class= "love-banner" >
< a href= "index.html" id= "logo" >约 课 < i class= "glyphicon glyphicon-heart" ></ i ></ a >
< div >
< a href= "#" >我要表白 </ a >
< a href= "#" >约TA学习 </ a >
</ div >
</ div >
</ div >
< div class= "content" >
< ul class= "sort" >
< a href= "index.html" >< li >< img src= "../src/images/首页.png" >首页 </ li ></ a >
< a href= "空教室查询.html" >< li >< img src= "../src/images/会议室预约.png" >空教室查询 </ li ></ a >
< a href= "个人主页.html" >< li >< img src= "../src/images/个人主页.png" >我的主页 </ li ></ a >
< a href= "约自习.html" >< li >< img src= "../src/images/自习室查询.png" >约自习 </ li ></ a >
< a href= "下课聊.html" >< li >< img src= "../src/images/聊天.png" >下课聊 </ li ></ a >
< a href= "表白墙.html" >< li >< img src= "../src/images/爱心.png" >表白墙 </ li ></ a >
</ ul >
<!--表白墙主体-->
< div id= "love-content" >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >yky 我喜欢你 喜欢你的笑的那么开朗 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" >
< img src= "../src/images/加号.png" >更多操作
< div class= "card-more-drop" >
< div class= "card-commit" >我要评论 </ div >
< div class= "card-yue" >约TA上课 </ div >
</ div >
</ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >yky 我喜欢你 喜欢你的笑的那么开朗 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >llohvye </ p >
< p >我做事从来都三分钟热度,却爱了你四年。我以为我习惯了离别就不会哭了,是,我是习惯了离别,却也习惯了你在我身边。我没有为谁哭过,却因为你要走了我哭了很久。对不起,我爱你,却没有告诉你。 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >林豪昀,你知道吗?每当看见你和她那么亲密地走在一起,我的心就会不禁颤抖了一下,心有些酸酸的,这种感觉真不好。为什么你总是要在我狠下心决定放下你的时候,却又来找我,给我希望?为什么?你知不知道,你这样伤害了我,深深地,林豪昀,四年的时间,很长,我不知道我是怎么做到的但我知道,我不介意再等你,等你的目光能转移到我身上,真的,我不介意,等你。反正已经等了你四年,我不介意再等上一个四年。一辈子很长,让我继续爱你可不可以?林豪昀 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >第五个 </ p >
< p >这个瀑布流我服了 谁发明的 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >yky 我喜欢你 喜欢你的笑的那么开朗 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >喵喵 </ p >
< p >我爱的人曹昊,你我分开已经三年之久了,我知道你有了新的生活,而我没有理由去打扰你,三年来,我对你的想念与日俱增,最近看到你和她的婚照,我知道自己终究还是错过了你,我很想很想马上跑到巩义,可是我却不能,三年前,因为我的原因导致我们分开,我没有一天不在后悔。如果我们晚点相遇,会不会站在你身边的人是我呢,我千万次的这样问自己,我真的好想好想你,好想抱抱你亲亲你,回忆一天比一天清晰,我知道自己可能一生都要沦陷在与你的记忆中,离开你之后,我好像得了爱无能呢,我无法再爱上任何人了。认识你,是我此生最幸运的事,我张邵愿意终生等待你,哪怕我知道你不会再回来。我希望当我年迈离去后我的骨灰可以撒在你的家乡,让我来生离你近一点,我爱你,曹昊。 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >喵喵 </ p >
< p >我爱的人曹昊,你我分开已经三年之久了,我知道你有了新的生活,而我没有理由去打扰你,三年来,我对你的想念与日俱增,最近看到你和她的婚照,我知道自己终究还是错过了你,我很想很想马上跑到巩义,可是我却不能,三年前,因为我的原因导致我们分开,我没有一天不在后悔。如果我们晚点相遇,会不会站在你身边的人是我呢,我千万次的这样问自己,我真的好想好想你,好想抱抱你亲亲你,回忆一天比一天清晰,我知道自己可能一生都要沦陷在与你的记忆中,离开你之后,我好像得了爱无能呢,我无法再爱上任何人了。认识你,是我此生最幸运的事,我张邵愿意终生等待你,哪怕我知道你不会再回来。我希望当我年迈离去后我的骨灰可以撒在你的家乡,让我来生离你近一点,我爱你,曹昊。 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >yky 我喜欢你 喜欢你的笑的那么开朗 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >yky 我喜欢你 喜欢你的笑的那么开朗 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >yky 我喜欢你 喜欢你的笑的那么开朗 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >yky 我喜欢你 喜欢你的笑的那么开朗 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >喵喵 </ p >
< p >我爱的人曹昊,你我分开已经三年之久了,我知道你有了新的生活,而我没有理由去打扰你,三年来,我对你的想念与日俱增,最近看到你和她的婚照,我知道自己终究还是错过了你,我很想很想马上跑到巩义,可是我却不能,三年前,因为我的原因导致我们分开,我没有一天不在后悔。如果我们晚点相遇,会不会站在你身边的人是我呢,我千万次的这样问自己,我真的好想好想你,好想抱抱你亲亲你,回忆一天比一天清晰,我知道自己可能一生都要沦陷在与你的记忆中,离开你之后,我好像得了爱无能呢,我无法再爱上任何人了。认识你,是我此生最幸运的事,我张邵愿意终生等待你,哪怕我知道你不会再回来。我希望当我年迈离去后我的骨灰可以撒在你的家乡,让我来生离你近一点,我爱你,曹昊。 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >喵喵 </ p >
< p >我爱的人曹昊,你我分开已经三年之久了,我知道你有了新的生活,而我没有理由去打扰你,三年来,我对你的想念与日俱增,最近看到你和她的婚照,我知道自己终究还是错过了你,我很想很想马上跑到巩义,可是我却不能,三年前,因为我的原因导致我们分开,我没有一天不在后悔。如果我们晚点相遇,会不会站在你身边的人是我呢,我千万次的这样问自己,我真的好想好想你,好想抱抱你亲亲你,回忆一天比一天清晰,我知道自己可能一生都要沦陷在与你的记忆中,离开你之后,我好像得了爱无能呢,我无法再爱上任何人了。认识你,是我此生最幸运的事,我张邵愿意终生等待你,哪怕我知道你不会再回来。我希望当我年迈离去后我的骨灰可以撒在你的家乡,让我来生离你近一点,我爱你,曹昊。 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >yky 我喜欢你 喜欢你的笑的那么开朗 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >yky 我喜欢你 喜欢你的笑的那么开朗 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
< div class= "card" >
< div class= "card-content" >
< p >沐熙 </ p >
< p >yky 我喜欢你 喜欢你的笑的那么开朗 < a href= "#" >更多 </ a ></ p >
< p >发表于 2017-12-02 14:23:30.0 </ p >
</ div >
< hr >
< div class= "card-extra-content" >
< div >< i class= "glyphicon glyphicon-heart" ></ i >0人喜欢 </ div >
< div class= "card-more" > < img src= "../src/images/加号.png" >更多操作 < div class= "card-more-drop" > < div class= "card-commit" >我要评论 </ div > < div class= "card-yue" >约TA上课 </ div > </ div > </ div >
</ div >
</ div >
</ div >
</ div >
< script src= "../bin/js/表白墙.js" > < / script >
</ body >
</ html >
css:

/**
表白墙
*/
#love-header{
height: 60px;
background: #EB717D;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.love-banner{
width: 70%;
display: flex;
justify-content: space-between;
align-items: center;
}
#love-header a{
padding: 3px;
color: #fff;
text-decoration: none;
}
#love-header a::before{
content: "[";
opacity: 0;
}
#love-content{
width: 85%;
margin: 20px auto;
position: relative;
}
.card{
padding: 10px;
border: 1px solid #EB717D;
border-radius: 5px;
float: left;
width: 300px;
margin: 10px;

}

.card p{
margin: 3px;
color: gray;
font-size: 14px;
}
.card p:first-child{
font-size: 18px;
font-weight: bold;
color: black;
}
.card-extra-content{
display: flex;
justify-content: space-between;
}
.card-extra-content img{
height: 16px;
width: 16px;
}
.glyphicon-heart{
cursor: pointer;
}
.glyphicon-heart:hover{
color: red;
}
.card-more{
cursor: pointer;
position: relative;
}
.card-more img{
transition: all 0.5s;
}
.card-more:hover img{
transform: rotate( 180deg);
}

.card-more-drop{
position: absolute;
display: none;
right: 0;
z-index: 10;
}
.card-commit{
height: 30px;
background: black;
color: #fff;
line-height: 30px;
text-align: center;
}
.card-yue{
height: 30px;
color: #fff;
background: green;
line-height: 30px;
text-align: center;
}
js:

$( function(){
/**
* 瀑布流
*/
function cardLoaction(){
var cardWidth= $( ".card"). css( "width");
cardWidth= cardWidth. replace( /px/, "");
var num= Math. floor( $( "#love-content"). width()/ cardWidth);
var cardArr=[];
var $card= $( ".card");
$card. each( function( index, element){
if( index< num){
cardArr[ index]= $card. eq( index). height();
$( element). css({
"left" :( index* $card. outerWidth()+ 20*( index)),
"top" : 0
});
}
else{
var minCardHeight= Math. min. apply( null, cardArr);
var minIndex= cardArr. indexOf( minCardHeight);
$( element). css({
"position" : "absolute",
"top" :minCardHeight+ 40,
"left" :$card. eq( minIndex). position(). left
});
cardArr[ minIndex]+= $( element). height()+ 60;
}
});
}
cardLoaction();
$( window). resize( function(){
cardLoaction();
});




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值