css和js实现瀑布流效果示例
css和js实现瀑布流效果示例
发布时间:2017-01-07 来源:查字典编辑
摘要:瀑布流效果html代码图片介绍和描述此为介绍和描述图片介绍和描2述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为...

瀑布流效果

css和js实现瀑布流效果示例1

html代码

<div>

<div id="bigbox">

<>

<div>

<div>

<h2>图片介绍和描述</h2>

<p>此为介绍和描述</p>

</div>

</div>

<div>

<div>

<h2>图片介绍和描2述</h2>

<p>此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述2</p>

</div>

</div>

<div>

<div>

<h2>图片介绍和描3述</h2>

<p>此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述3</p>

</div>

</div>

<div>

<div>

<h2>图片介绍和描4述</h2>

<p>此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述4</p>

</div>

</div>

<div>

<div>

<h2>图片介绍和描5述</h2>

<p>此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述5</p>

</div>

</div>

<div>

<div>

<h2>图片介绍和描述</h2>

<p>此为介绍和描述</p>

</div>

</div>

<div>

<div>

<h2>图片介绍和描2述</h2>

<p>此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述2</p>

</div>

</div>

<div>

<div>

<h2>图片介绍和描3述</h2>

<p>此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述3</p>

</div>

</div>

<div>

<div>

<h2>图片介绍和描4述</h2>

<p>此为介绍和描述此为介绍和描述此为介绍和描述此为介绍和描述4</p>

</div>

</div>

<div>

<div>

<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运算返回数组中某一值的对应项数(比如算出最小的高度值是数组里面的第几个)

for( ind in wfa ) {

if( wfa[ind] == minh) {

return ind;

}

}

};

var wfAreaH = parseInt( $(opt.wflist).last().css("top")) + $(opt.wflist).last().outerHeight(true)+ "px"; //显示区域的高度为 最后一个元素的Top值+自身高度

obj.css({ "width":wfwidth * maxcol,"height":wfAreaH }); //设置显示区域宽度和高度

}

})(jQuery);

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新 Div+Css教程学习
热门 Div+Css教程学习
网页设计子分类