瀑布流效果

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

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

标签:
css,瀑布流

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com

评论“css和js实现瀑布流效果示例”

暂无“css和js实现瀑布流效果示例”评论...

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。