时间:2021-05-26
本文实例为大家分享了js实现瀑布流布局的具体代码,供大家参考,具体内容如下
原理:
1、瀑布流布局,要求进行布局的元素等宽,然后计算元素的宽与浏览器的宽度之比,得到需要布置的列数。
2、创建一个数组,长度为列数,数组元素为每一列已布置元素的总高度。(一开始为0)。
3、将未布置的元素,依次布置到高度最小的那一列,然后更新这一列的高度,就得到了瀑布流布局
实现
布局
<body> <div id="content"> <div id="box"> <img src="" > </div> <div id="box"> <img src="" > </div> <div id="box"> <img src="" > </div> <div id="box"> <img src="" > </div> <div id="box"> <img src="" > </div> <div id="box"> <img src="" > </div> <div id="box"> <img src="" > </div> <!-- 很多很多图片 --> </div></body>js:
$(function(){ waterFall();})function waterFall(){ //计算出每个图片盒子的宽度 var box = $('#box'); var boxWidth = box.outerWidth(); //计算出屏幕的宽度 var screenWidth = $(window).width(); //计算出有多少列 var cols = parseInt(screenWidth / boxWidth); //定义一行图片盒子的高度数组,找出数组中最少的值 var heigthArr =[]; //所有图片循环 $.each(box,function(item,index){ var boxHeigth = box.outerHeigth(); //判断是否第一排 if(index < cols){ //如果是第一排,取高度,追加到数组中 heigthArr[index] = boxHeigth; }else{ //最小图片高度 var minBoxHeigth = Math.min.apply(null,heigthArr); //最小图片的索引 var minBoxIndex = $.inArray(minBoxHeigth,heigthArr); $(item).css({ position:'absolute', left:minBoxIndex * boxWidth + 'px', top:minBoxHeigth + 'px' }); heigthArr[minBoxIndex]+=boxHeigth;//更新高度 } })}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了JS实现瀑布流布局展示的具体代码,供大家参考,具体内容如下html部分瀑布流布局css部分*{padding:0px;margin:0px;
本文实例为大家分享了js实现瀑布流布局的具体代码,供大家参考,具体内容如下1.实现瀑布流布局思路准备好数据之后.绑定滚动事件.判断页面是否到底(滚动的距离+可是
原生JS实现的瀑布流布局,代码及demo代码地址:https://github.com/leozdgao/responsive_waterfallDemo:ht
下面奉上一则用JS实现瀑布流的方法,望批评。复制代码代码如下:瀑布流布局测试body{background-color:#eee;font-size:84%;t
本文介绍了css3column实现卡片瀑布流布局的示例代码,分享给大家,具体如下:实现效果今天遇到了需要实现一个卡片的瀑布流布局的问题,卡片高度是不同的。最后使