css和js完成瀑布流实际效果示例

日期:2020-10-21 类型:科技新闻 

关键词:免费自助建站,手机建站平台,wap建站,免费自助建站平台,H5网站,H5模板建站

瀑布流实际效果

html编码

拷贝编码
编码以下:

<div class="wrap">
<div class="bigbox" id="bigbox">
<!--每小块刚开始-->
<div class="listbox">
<div class="listbox-con">
<h2>照片详细介绍和叙述</h2>
<p>此为详细介绍和叙述</p>
</div>
</div>
<div class="listbox">
<div class="listbox-con">
<h2>照片详细介绍和描2述</h2>
<p>此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述2</p>
</div>
</div>
<div class="listbox">
<div class="listbox-con">
<h2>照片详细介绍和描3述</h2>
<p>此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述3</p>
</div>
</div>
<div class="listbox">
<div class="listbox-con">
<h2>照片详细介绍和描4述</h2>
<p>此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述4</p>
</div>
</div>
<div class="listbox">
<div class="listbox-con">
<h2>照片详细介绍和描5述</h2>
<p>此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述5</p>
</div>
</div>
<div class="listbox">
<div class="listbox-con">
<h2>照片详细介绍和叙述</h2>
<p>此为详细介绍和叙述</p>
</div>
</div>
<div class="listbox">
<div class="listbox-con">
<h2>照片详细介绍和描2述</h2>
<p>此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述2</p>
</div>
</div>
<div class="listbox">
<div class="listbox-con">
<h2>照片详细介绍和描3述</h2>
<p>此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述3</p>
</div>
</div>
<div class="listbox">
<div class="listbox-con">
<h2>照片详细介绍和描4述</h2>
<p>此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述4</p>
</div>
</div>
<div class="listbox">
<div class="listbox-con">
<h2>照片详细介绍和描5述</h2>
<p>此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述此为详细介绍和叙述5</p>
</div>
</div>

</div>
</div>

css款式编码

拷贝编码
编码以下:

*{ margin:0px; padding:0px;}
.wrap{ padding:15px;}
.bigbox{ width:100%; position:relative;}
.listbox{ width:23%; padding:1%; position:absolute; box-shadow:0 0 1px #CCC;}
.listbox-con{ background:#fefefe;}
.listbox-con h2{ font-size:16px; color:#333;}
.listbox-con p{ font-size:14px; color:#666;}

软件编码

拷贝编码
编码以下:

(function($){
var defaults ={
wflist:'.listbox'
};
$.fn.waterfal = function(opt){
opt =$.extend({},defaults,opt);
// 自变量
var obj = $(this);//当今目标

var wfwidth = $(opt.wflist).outerWidth(true),
minHeight = 0,
maxcol=Math.floor($(window).width()/wfwidth);

(function(wflist,maxcol,wfwidth,minHeight){
var wfarr = new Array(),minHeight = 0,minCol=0;

for(i=0;i<wflist.length;i++){
colHeight=wflist.eq(i).outerHeight(true);
if(i<maxcol){
wfarr[i] = colHeight;
wflist.eq(i).css({'top':0,left:i*wfwidth});
}else{
minHeight=Math.min.apply(null,wfarr);//
minCol = getArrayKey(wfarr, minHeight);
wfarr[minCol] += colHeight; //再加新高宽比后升级高宽比值
wflist.eq(i).css({"top":minHeight,left:minCol * wfwidth}); //先获得高宽比最少的Li,随后把接下来的li放到它的下面
}
wflist.eq(i).attr('id',"post_"+i);
};
})( $(opt.wflist),maxcol,wfwidth,minHeight);

function getArrayKey(wfa,minh){//应用for in运算回到数字能量数组中某1值的对应项数(例如算出最少的高宽比值是数字能量数组里边的第几个)
for( ind in wfa ) {
if( wfa[ind] == minh) {
return ind;
}
}
};
var wfAreaH = parseInt( $(opt.wflist).last().css("top")) + $(opt.wflist).last().outerHeight(true)+ "px"; //显示信息地区的高宽比为 最终1个元素的Top值+本身高宽比
obj.css({ "width":wfwidth * maxcol,"height":wfAreaH }); //设定显示信息地区宽度和高宽比
}
})(jQuery);