首页 > web前端 > js教程 > 正文

js实现图片瀑布流的两种方式(附代码)

angryTom
发布: 2019-12-03 17:39:53
转载
3813 人浏览过

js实现图片瀑布流的两种方式(附代码)

什么是图片瀑布流

用一张花瓣网页的图片布局可以很清楚看出图片瀑布流的样子:

js实现图片瀑布流的两种方式(附代码)

简单来说,就是有很多图片平铺在页面上,每张图片的宽度相同,但是高度不同,这样错落有致的排列出 n 列的样子很像瀑布,于是就有了瀑布流图片一说。

实现原理

1、第一种方式

第一种方式前提是:图片的宽度固定,但是列可变(根据屏幕大小)

通过上面的介绍,我们知道要实现瀑布流的前提是宽度一致(假如为100px),高度可以不相同。

【相关课程推荐:JavaScript视频教程】  

我们首先确定排布的列数(假如为4列),那么第一行只能放4张图片,然后将每个图片的高度放入一个数组中(假如为 heightArr = [100,50, 200,30]),当我们在放入下一张图片的时候就要判断这个数组中哪个高度是最小的(这里是30),然后还要知道最小的高度所在高度数组的索引(这里是i = 3),然后我们就可以对这张图片进行定位:

{
    position: absolute;
    left: i*100 + 'px';
    top: 30 + 'px'
}
登录后复制

如此遍历剩下的图片即可。

实现代码

下面是未处理的原始代码,图片之间间隔很多空白,影响美观。




    
    
    
    Document
    

    

                                                                                                                                           

登录后复制

js实现图片瀑布流的两种方式(附代码)

下面是处理后的代码:




    
    
    
    Document
    

    

                                                                                                                                           

登录后复制

js实现图片瀑布流的两种方式(附代码)

2、第二种方式

第二种方式前提是:列是固定的个数,然后图片根据屏幕的宽度进行自适应缩放。

这种方式由于图片是可以缩放的,宽高不好确定,因此不好用定位的方式处理。

我们可以这样处理,既然知道了列,那么每一列做一个容器。然后遍历图片,将图片放入容器高度最小的容器中即可。

这里我们使用js来添加图片,而不是事先写好在html中了。

实现代码





    
    
    
    Document
    

登录后复制

js实现图片瀑布流的两种方式(附代码)

本文来自 js教程 栏目,欢迎学习!  

以上是js实现图片瀑布流的两种方式(附代码)的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:cnblogs.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!