当前位置: 移动技术网 > IT编程>开发语言>JavaScript > jquery实现超简单的瀑布流布局【推荐】

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

2019年06月11日  | 移动技术网IT编程  | 我要评论
1.看看效果吧! 2.html代码 <!doctype html> <html lang="en"> <

1.看看效果吧!

2.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({});
 })

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

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网