jquery实现超简单的瀑布流布局【推荐】

时间:2021-05-26

1.看看效果吧!

2.html代码index.html

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> ul{position: relative;padding: 0 -3px;list-style: none;width: 600px;margin: 0 auto} li{width: 33.33%;position: absolute;box-sizing: border-box;display: block; } img{width: 100%;height: auto;display: block;} </style> <script src="./jquery-1.12.4.min.js"></script></head><body style="background: #000"> <ul class="flowLayout-box"> <li class="flowLayout-item"> <img class="flowLayout-pic" src="./img/u17.png" alt=""></li> <li class="flowLayout-item"> <img class="flowLayout-pic" src="./img/u19.png" alt=""></li> <li class="flowLayout-item"> <img class="flowLayout-pic" src="./img/u114.png" alt=""></li> <li class="flowLayout-item"> <img class="flowLayout-pic" src="./img/u116.png" alt=""></li> <li class="flowLayout-item"> <img class="flowLayout-pic" src="./img/u118.png" alt=""></li> <li class="flowLayout-item"> <img class="flowLayout-pic" src="./img/u120.png" alt=""></li> <li class="flowLayout-item"> <img class="flowLayout-pic" src="./img/u132.png" alt=""></li> </ul></body></html>

3.插件代码

(function ($) { $.fn.flowLayout = function(options) { var dft = { gapWidth:16, //间隙 gapHeight:16, //间歇 column:3 //列 }; var ops = $.extend(dft,options); var _this = $(this); _this.width((_this.parents('.flowLayout-box').width()-2*ops.gapWidth)/3) var _pWidth=_this.parents('.flowLayout-box').width(); $(".flowLayout-box").css({ 'opacity':0 }); var columnHeight=[],columnIndex=0; for (var i=0 ;i<ops.column;i++){ columnHeight.push(0); } setTimeout(function () { for(var j =0 ; j< _this.length ;j++){ console.log(columnHeight[columnIndex]); $(_this).eq(j).css({ 'top':columnHeight[columnIndex]+ops.gapHeight+'px', 'left':_pWidth*columnIndex/3+'px' }) columnHeight[columnIndex]+=$(_this).eq(j).height()+ops.gapHeight columnIndex=getIndex(); } },50) function getIndex() { var columnIndex=0,maxHeight=0; for(var i =0 ;i < columnHeight.length ;i++){ if(columnHeight[i]<columnHeight[columnIndex]){ columnIndex=i; } if(columnHeight[i]>maxHeight){ maxHeight=columnHeight[i] } } $(".flowLayout-box").css({ 'opacity':1, 'height':maxHeight }); return columnIndex; } } })(jQuery); 

4.调用代码

$(function () { $('.flowLayout-box li').flowLayout({}); })

代码简单,容易修改,,拿去用吧。。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章