js瀑布流的代码

<!doctype html>

<html>

<head>

<meta charset="utf-8">
<title>Jquery瀑布流布局(每行代码都有详细注释)-作者:刘晓帆</title>

<style type="text/css">

body, ul, li, h3 { margin: 0; padding: 0; list-style: none; font: bold 12px
"微软雅黑"; } /*瀑布流布局样式*/ #lxf-box { position: relative; } #lxf-box li { position:
absolute; background: #fff; border: solid 1px #ccc; text-align: center; padding:
10px; left: 0px; top: 0; } h3 { padding-top: 8px; } img { width: 200px; height:
auto; display: block; border: 0 } /*css3动画*/ li { -webkit-transition: all .7s
ease-out .1s; -moz-transition: all .7s ease-out; -o-transition: all .7s ease-out
.1s; transition: all .7s ease-out .1s }

</style>

<script src="http://liuxiaofan.com/demo/js/jquery-1.6.4.min.js"
type="text/javascript"></script> </head> <body> <ul
id="lxf-box">

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/OLqypfV.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/msbvKWyQQzZuZy.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/WbWXwqpcxqcued.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/rabGVkIGq.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/rSmEiZGlAvvuZ.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/YewRtz.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/STVDndiZsIduZyLv.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/mWFuVrzCzpPdzdje.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/MsZvAyOFukxdzdjefXwi.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/OEycuedk.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/YwabRquVKrxd.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/+nwbuJpc.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/qymffF.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/DvKZdxCjtfqMv.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/SOmyOQZtlUfdzdjefXwi.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/REsUNXUvAkrdzdj.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/DQJwrFnDpgtdz.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/eJupzWlGPxz.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/IWpjipjp.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/OXsDgKacJeTdzdjefXwi.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/QPIzxiMkmlHdzdjefX.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/mrTNaJTaQyluZyLvvnWS.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/mqXLNuWiPrbdz.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/MiEJRJdimxPdzdjefXw.jpg"></a>
    <h3>图片标题</h3>   </li>

<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/CczowVxqM.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/rabGVkIGq.jpg"></a>
    <h3>图片标题</h3>   </li>  
<li><a href="http://www.liuxiaofan.com/"><img
src="http://www.liuxiaofan.com/demo/waterfall/zwPqjasxHYvdz.jpg"></a>
    <h3>图片标题</h3>   </li>

</ul>

<script> /* 原理:1.把所有的li的高度值放到数组里面      2.第一行的top都为0
  3.计算高度值最小的值是哪个li   4.把接下来的li放到那个li的下面 作者:刘晓帆
博客地址:[url]http://liuxiaofan.com[/url] 编写时间:2012年6月9日 */ var margin = 10;//这里设置间距
var li=$("li");//这里是区块名称 var li_W =
li[0].offsetWidth+margin;//取区块的实际宽度(包含间距,这里使用源生的offsetWidth函数,不适用jQuery的width()函数是因为它不能取得实际宽度,例如元素内有pandding就不行了)
function liuxiaofan(){//定义成函数便于调用  var h=[];//记录区块高度的数组  var n =
document.documentElement.offsetWidth/li_W|0;//窗口的宽度除以区块宽度就是一行能放几个区块
 for(var i = 0;i < li.length;i++) {//有多少个li就循环多少次   li_H =
li[i].offsetHeight;//获取每个li的高度   if(i < n) {//n是一行最多的li,所以小于n就是第一行了
   h[i]=li_H;//把每个li放到数组里面
   li.eq(i).css("top",0);//第一行的Li的top值为0
   li.eq(i).css("left",i * li_W);//第i个li的左坐标就是i*li的宽度
   }   else{    min_H
=Math.min.apply(null,h) ;//取得数组中的最小值,区块中高度值最小的那个    minKey =
getarraykey(h, min_H);//最小的值对应的指针    h[minKey] += li_H+margin
;//加上新高度后更新高度值
   li.eq(i).css("top",min_H+margin);//先得到高度最小的Li,然后把接下来的li放到它的下面
   li.eq(i).css("left",minKey * li_W); //第i个li的左坐标就是i*li的宽度
  }
  $("h3").eq(i).text("编号:"+i+",高度:"+li_H);//把区块的序号和它的高度值写入对应的区块H3标题里面
 } } /* 使用for in运算返回数组中某一值的对应项数(比如算出最小的高度值是数组里面的第几个) */ function
getarraykey(s, v) {for(k in s) {if(s[k] == v) {return k;}}}
/*这里一定要用onload,因为图片不加载完就不知道高度值*/ window.onload = function() {liuxiaofan();};
/*浏览器窗口改变时也运行函数*/ window.onresize = function() {liuxiaofan();};

</script>

</body>

</html>

转自 http://bbs.blueidea.com/thread-3063753-1-1.html

js瀑布流的代码,布布扣,bubuko.com

时间: 2024-10-21 17:48:55

js瀑布流的代码的相关文章

web前端入门到实战:纯CSS瀑布流与JS瀑布流

瀑布流 又称瀑布流式布局,是比较流行的一种网站页面布局方式.即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置. 为什么使用瀑布流 瀑布流布局在我们现在的前端页面中经常会用的到,它可以有效的降低页面的复杂度,节省很多的空间,对于整个页面不需要太多的操作,只需要下拉就可以浏览用户需要看到的数据:并且,在当前这个APP至上的时代,瀑布流可以提供很好的用户体验,通过结合下拉刷新,上拉加载进行数据的懒加载等操作,对于用户的体验感来

js 瀑布流

项目没上线,办公室里坐着学习技术,尼玛钱不够花啊,所以多学技术呗,仿写了个js 瀑布流,ide用的是idea14. 效果还可以. 1.项目效果图 index.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>js瀑布流</title> <link href="css/app.css

面向对象js瀑布流效果

index.html <!doctype html><html lang="en"> <head>  <!--网站编码格式,UTF-8 国际编码,GBK或 gb2312 中文编码-->  <meta charset="UTF-8">  <meta name="Keywords" content="">  <meta name="Descri

原声JS瀑布流加延迟加载

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>瀑布流</title> <style> *{ margin: 0px; padding:0px; } .box{ position: relative; top:0px; } ul li{ list-style-type: none; posit

JS瀑布流效果-布局

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>JS瀑布流效果-布局</title> <style> * { margin: 0px; padding: 0px; } #container { position: relative; } .box { padding: 5px; float: left; } .box_img {

JS瀑布流效果

本篇内容实现类似百度图片的呈现功能,瀑布流+自动加载 index13.html 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>uvi</title> 6 <link rel="stylesheet" href="style2.css" type="text/css&q

js瀑布流(定位法)

1.首先,自己写好图片路径,引入jquery <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; } ul{ position: relative; width: 860px; margin: 0

瀑布流-jquery代码

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery随机图片瀑布流无限加载</title> <style type="text/css"> *{margin:0;padding:0;list-style-type:none;} a,img{border:0;} body{font:12px/180% Arial, Helvetica

比较容易理解的---原生js瀑布流

最近一直在恶补基础JS H5 CSS3的基础知识 关于这个瀑布流: 本来打算看着教程来做的. 不过 感觉理解起来有点复杂. SO, 自己参考教程默写了一个.. 目前我所接触过的瀑布流布局分为2大类 主要区分在于 float布局 或者position布局 点击这里下载Demo 贴下源码:(可能有些BUG,没有具体测试) 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.