网页制作 
首页 > 网页制作 > 浏览文章

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

(编辑:jimmy 日期: 2024/11/16 浏览:3 次 )

瀑布流效果

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实现文本和div居中对齐详细讲解示例
下一篇:CSS如何排查错误?从哪入手
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。