这几天做比赛项目的时候要写一个表白墙,用了瀑布流的方式实现,现在来说一下这个瀑布流是怎么实现的。
瀑布流是什么就不再说了,不知道的可以看看这个:点击打开链接
现在说说瀑布流的原理:
将容器设置为相对布局,里面摆放的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
>
/**
表白墙
*/
#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;
}
$(
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();
});