网络图片地址(网络图片地址怎么获取)

瀑布流布局简而言之就是类似瀑布的布局,这么一讲大家可能还是不是很明白,来来来,那现在我给大家上一个常见的实例:

瀑布流分为横向与竖向两种,用图说话。

网络图片地址(网络图片地址怎么获取)

瀑布流(横向)

网络图片地址(网络图片地址怎么获取)

瀑布流(横向)

相信大家在百度上搜索图片的时候,网页图片的布局就是这样子的吧,当然还有一种瀑布流形式。

网络图片地址(网络图片地址怎么获取)

瀑布流(纵向)

网络图片地址(网络图片地址怎么获取)

瀑布流(纵向)

今天我们主要说说纵向瀑布流,这也是使用更为广泛的一种。

纵向瀑布流即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置。那么规则是什么呢?

当第一排排满足够多的等宽图片时(如下图情况),自然而然地考虑到之后放置的图片会往下面排放。

网络图片地址(网络图片地址怎么获取)

那么第六张图片,放置在什么位置呢?是下图的位置么?

网络图片地址(网络图片地址怎么获取)

我们通过瀑布流算法实验得到,后面紧跟的第六张图片的位置应该是这个位置。

网络图片地址(网络图片地址怎么获取)

为什么呢?

因为放置它之前,这一列的高度为所有列中最小,所以会放置在这个地方。

所以我们知道了,如果再继续放置下去,第七张图片应该是这个位置,对吗?

网络图片地址(网络图片地址怎么获取)

通过瀑布流算法实验得出位置正确。

看懂这个图示应该就能理解了瀑布流的原理算法。

网络图片地址(网络图片地址怎么获取)

Js代码:

var colCount //定义列数

var colHeightArry= [] //定义列高度数组

var imgWidth = $(‘.waterfall img’).outerWidth(true) //单张图片的宽度

colCount = parseInt($(‘.waterfall’).width()/imgWidth) //计算出列数

for(var i = 0 ; i < colCount; i ++){

colHeightArry[i] = 0

}

//[0,0,0]

$(‘.waterfall img’).on(‘load’,function(){

var minValue = colHeightArry[0] //定义最小的高度

var minIndex = 0 //定义最小高度的下标

for(var i = 0 ; i < colCount; i ++){

if(colHeightArry[i] < minValue){ //如果最小高度组数中的值小于最小值

minValue = colHeightArry[i] //那么认为最小高度数组中的值是真正的最小值

minIndex = i //最小下标为当前下标

}

}

$(this).css({

left: minIndex * imgWidth,

top: minValue

})

colHeightArry[minIndex] += $(this).outerHeight(true)

})

//当窗口大小重置之后,重新执行

$(window).on(‘resize’,function(){

reset()

})

//当窗口加载完毕,执行瀑布流

$(window).on(‘load’,function(){

reset()

})

//定义reset函数

function reset(){

var colHeightArry= []

colCount = parseInt($(‘.waterfall’).width()/imgWidth)

for(var i = 0 ; i < colCount; i ++){

colHeightArry[i] = 0

}

$(‘.waterfall img’).each(function(){

var minValue = colHeightArry[0]

var minIndex = 0

for(var i = 0 ; i < colCount; i ++){

if(colHeightArry[i] < minValue){

minValue = colHeightArry[i]

minIndex = i

}

}

$(this).css({

left: minIndex * imgWidth,

top: minValue

})

colHeightArry[minIndex] += $(this).outerHeight(true)

})

}

总结瀑布流布局原理

  • 设置图片宽度一致
  • 根据浏览器宽度以及每列宽度计算出列表个数,列表默认为0
  • 当图片加载完成,所有图片依次放置在最小的列数下面
  • 父容器高度取列表数组的最大值

版权声明:本文图片和内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送联系客服 举报,一经查实,本站将立刻删除,请注明出处:https://www.4kpp.com/19374.html

(0)
漫空客漫空客
上一篇 2023年4月23日
下一篇 2023年4月23日

相关推荐

  • 吃完头孢类药物后除了不能喝酒就不用忌口其他了吗 蚂蚁庄园小课堂4月23日答案

    当医生给患者开头孢类药物的时候,一定会交代服药期间不要喝酒,避免产生不良反应,那么吃完头孢类药物后除了不能喝酒就不用忌口其他了吗?下面八宝网小编带来:蚂蚁庄园小课堂4月23日答案。…

    2023年4月23日
    1340
  • 恐龙化石是怎样形成的(化石是怎样形成的)

    今天给大家介绍恐龙化石是如何形成的,以及化石是如何形成的相应知识点。希望对你有帮助,也别忘了收藏这个站点。 恐龙化石是如何形成的? 很多人对博物馆里的恐龙化石很好奇,想知道它们是怎…

    投稿 2023年4月23日
    1440
  • 笔记本键盘变数字(笔记本键盘数字键打不出19)

    今天给大家分享一下笔记本键盘改号的知识,也会说明笔记本键盘的数字键打不出19。如果你碰巧解决了你现在面临的问题,别忘了关注这个网站,现在就开始! 笔记本键盘的字母变成数字怎么按回去…

    投稿 2023年4月23日
    2080
  • 网上购物如何操作(网上购物微信付款如何操作)

    网络购物的出现,极大地便利了人们的日常生活,但也带来了一些新的消费纠纷。面对网络购物中的诸多陷阱,作为消费者该如何避坑?又该如何有效维权?下面这两份指南请收好↓ 消费者通过网络购买…

    投稿 2023年4月23日
    1580
  • 枫叶龟好养吗(枫叶龟好养吗怎么养)

    今天我想和大家分享一下关于如何饲养枫叶龟的问题。以下是这个问题的总结。让我们来看看。 枫叶龟,初学者的好宠物。 红耳滑龟是一种适合繁殖的小型淡水龟。它因背上的红点而得名,看起来像枫…

    投稿 2023年4月23日
    1000
  • 怎么去除嘴角皱纹(怎么去除嘴角皱纹最有效)

    今天小编给各位分享怎么去除嘴角皱纹(怎么去除嘴角皱纹最有效),如果能碰巧解决你现在面临的问题,别忘了关注小站,我们一起开始吧! 去除嘴角皱纹的更好方法 可以用兰蔻纯面霜配合 ***…

    投稿 2023年4月23日
    2320
  • 华容道解法图(15华容道解法思路窍门)

    今天我就来介绍一下华容道的解法图,以及15个华容道解法对应的知识点。希望对你有帮助,也别忘了收藏这个站点。 三国华容道插图 三国华容道的解法如下: 1.左角兵是右,右角兵是左,张夏…

    投稿 2023年4月23日
    2100
  • 新手理财入门基础知识(如何从零开始学理财)

    理财和婚姻一样,短时间看不出来对方究竟有多好,只能靠时间的来证明。 很多人忙忙碌碌了一年,可是就是没有攒下什么钱,更甚至是月光族,月月发钱,月月喝水咽糠。这就是不会理财,今天就为大…

    2023年4月23日
    1040
  • 淘宝卖家工具(旺店通erp多少钱一年)

    淘宝新规定,这四项费用免了!商家注意,又可以省一笔钱了! 最近,有媒体传出消息,淘宝营销四件套“三宝一券”将改为完全免费。所谓“三宝一券”,分别指店铺宝、单品宝、搭配宝、优惠券,消…

    投稿 2023年4月23日
    1800
  • 电子海报制作(电子海报制作教程)

    今天给大家分享一个关于电子海报* * *(电子海报* * *教程)的问题。以下是这个问题的总结。让我们来看看。 电子海报* * * 随着科技的不断发展,传统海报已经逐渐被电子海报所…

    投稿 2023年4月23日
    1140

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注