博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html瀑布流布局是什么,瀑布流布局图片与css多种实现思路剖析
阅读量:5171 次
发布时间:2019-06-13

本文共 1418 字,大约阅读时间需要 4 分钟。

一、什么是瀑布流布局

瀑布流布局在当下前端网页设计中越来越流行,主要表现形式为上下高度参差不齐的多行布局,往往图片各异大小不等却能够自动适应排成一排按行进行展示,滚动条下拉还不会不断地自动适应加载数据一直加载到网站最底部,布局方式见下图:

56a4750595fdd14d8a5a7c1b295fa780.png

瀑布流布局的方式多用在较新颖的图片站点,为了提高用户访问的视觉体验而推出的具有高效吸引力的布局方式,只需要手指滑动一下鼠标滑轮,错落有致的唯美布局便随着滚动的滑轮慢慢呈现。

二、瀑布流布局的原理与实现思路

要想理清瀑布流布局的原理与思路,首先我们要明白其主要特点,该布局方式最主要的特点就是图片的宽度都是保持一致的,只有高度是杂乱无序的,抓住这个特点实现起来还是相对容易的。

e1d158ff6b497c669a87ab04cec7bbdf.png

掌握了上面的特点之后,我们需要将整个布局的每一列的列宽设置固定不变,利用html+css+js代码实现高度自动适应,列宽固定好以后,当我们插入等宽的图片后会自动按照等宽进行排列图片,图片的高度可以用div盒子布局的margin和padding内外间距实现错落有致瀑布流布局的效果。

假如图片的固定数量是已知的,我们可以直接按照上面的方式排列成若干列即可,只需要html+css样式就能实现,假如图片数量不固定,想要随着鼠标滑轮的滚动慢慢不断的加载,可以使用ajax动态远程加载图片,此种方式需要借助js脚本代码。

三、html+css图片瀑布流布局代码实现

只需要css和html代码就能实现的布局必须保证图片的数量已知并且是静态图片,此方法用到css3中的Multi-columns技术,该技术是CSS3中新增的一种多栏布局,其中,column-count属性控制分栏的数目,column-gap属性设置分栏之间的间隙以及分栏的样式,具体其它相关属性见下图:

a987dac68925e5204c4056d8309b8010.png

html代码:

c3bf2253ed152bd3cca9047b96b78578.png

css样式代码:

d70f180ce35bbfaa69a606863ab6bc50.png

css3实现图片瀑布流效果如下:

3568610de7a134c4ef2c1abf9481a285.png

三、js+jquery实现图片瀑布流布局

此种方式需要借助jquery和js来实现,故需要提前下载好jquery.js文件并引入到网页中,实现具体思路是:查找具有图像高度最小的列,插入该列,然后继续查找具有最小高度的下一列,并不断重复直到图像满为止;

找出每一列与浏览器整体的距离(在左侧还是右侧)有什么用? 当您知道列的左侧时,您就会知道在其下方插入图像时如何将图像定位到该列。 只要图像的左值与列相同,则图像将被插入到列中。

为了使从第二行开始的最后一行中的间隙最小,请将图像放置在第一行中最短图像的下方,依此类推,父元素设置为相对位置,图像元素设置为绝对位置。 然后,通过设置顶部值和左侧值来定位每个元素。

html代码如下:

50c5c1fae2a8861c77d35c634ee080a9.png

js和jquery脚本代码如下:

b112d6c6d4253953e82c90ad9a9ddc72.png

js瀑布流布局效果展示:

dc474e0f6a5b2ebbc4e2850d25bac63c.png

四、Vue实现瀑布流布局

vue项目实现瀑布流布局可以结合需求使用vue的v-for属性进行实现,然后结合vue-lazy实现懒加载 ( npm i vue-lazyload –save-dev)的功能也是非常不错的,具体懒加载的代码为:img标签:src换成v-lazy。

其实vue.js 2.x及以上的版本也提供了很多可供使用的插件实现瀑布流布局,比如:vue-grid-layout、vue2-waterfall等自适应的和可拖拽的组件,功能也是非常齐全和强大。

html代码如下:

  • {

    {item.u_name}}

    {

    {item.e_intro}}

6a7e813d7763d2c1f20e2918686c11c7.png

CSS样式代码:

ab117c9d8b73d415ad6d0d0a5693260f.png

Vue代码如下:

eb207bb38529be4751618cc06ba586e6.png

转载地址:http://hhhiv.baihongyu.com/

你可能感兴趣的文章
单链表 类
查看>>
类的组合 构造函数的用法
查看>>
ORACLE SQL:经典查询练手第三篇
查看>>
ubuntu 包管理
查看>>
java -io字符流FileWrite操作演示
查看>>
vue回到上一个位置
查看>>
UESTC_Infected Land 2015 UESTC Training for Search Algorithm & String<Problem G>
查看>>
.Net 之 RPC 框架之Hprose(远程调用对象)
查看>>
全球外贸客户资源网站总汇
查看>>
杂项-CORS:CORS(跨域资源共享)
查看>>
杨柳目-杨柳科:杨柳科
查看>>
Node.js:JXcore
查看>>
优化CUDA数据传输
查看>>
2018-10-27
查看>>
python-整理--连接MSSQL
查看>>
JS图片画方块定位坐标
查看>>
[C#]写自己的类库
查看>>
汉诺塔
查看>>
CentOS安装zip及用法
查看>>
RocketMQ系列实战
查看>>