瀑布流布局代码一例


Posted in Javascript onApril 11, 2014
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>瀑布流布局代码</title> 
<script type="text/javascript" src="js/jquery.js"></script> 
<style type="text/css"> 
body, div, img, h1, h2, h3, h4, h5, h6 { padding:0px; margin:0px; } 
img { border:none; } 
.wrapper { width:960px; margin:0 auto; } 
#con1_1 { position:relative; } 
#con1_1 .product_list { position:absolute; left:0px; top:0px; padding:10px; background:#eee; } 
.product_list img { width:200px; display:block; } 
.product_list h2 { padding:5px 0px; font-size:12px; text-align:center; color:#333; } 
</style> 
</head> 
<body> 
<div class="wrapper"> 
<h3>这是正文的标题部分</h3> 
<div id="con1_1"> 
<div class="product_list"> <a href="#"><img src="images/img1.jpg"></a> 
<h2>图片高度</h2> 
</div> 
<div class="product_list"> <a href="#"><img src="images/img2.jpg"></a> 
<h2>图片高度</h2> 
</div> 
<div class="product_list"> <a href="#"><img src="images/img3.jpg"></a> 
<h2>图片高度</h2> 
</div> 
<div class="product_list"> <a href="#"><img src="images/img4.jpg"></a> 
<h2>图片高度</h2> 
</div> 
<div class="product_list"> <a href="#"><img src="images/img5.jpg"></a> 
<h2>图片高度</h2> 
</div> 
<div class="product_list"> <a href="#"><img src="images/img6.jpg"></a> 
<h2>图片高度</h2> 
</div> 
<div class="product_list"> <a href="#"><img src="images/img7.jpg"></a> 
<h2>图片高度</h2> 
</div> 
<div class="product_list"> <a href="#"><img src="images/img8.jpg"></a> 
<h2>图片高度</h2> 
</div> 
</div> 
<h3>这行文字的位置首先要用js去计算下上面内容的高度了</h3> 
</div> 
</body> 
<script type="text/javascript"> 
/* 
原理:1.把所有的li的高度值放到数组里面 
2.第一行的top都为0 
3.计算高度值最小的值是哪个li 
4.把接下来的li放到那个li的下面 
*/ 
var margin = 10;//设置间距 
var li=$(".product_list");//区块名称 
var li_W = li[0].offsetWidth+margin;//取区块的实际宽度 
function liuxiaofan(){ 
var h=[];//记录区块高度的数组 
var n = 960/li_W|0; 
for(var i = 0;i < li.length;i++) { 
li_H = li[i].offsetHeight;//获取每个li的高度 
if(i < n) {//n是一行最多的li,所以小于n就是第一行了 
max_H =Math.max.apply(null,h); 
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的宽度 
} 
$("h2").eq(i).text("高度:"+li_H);//把区块高度值写入对应的区块H2标题里面 
} 
max =Math.max.apply(null,h) ; 
$("#con1_1").css("height",max); 
} 
/* 使用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();}; 
$(function(){ 
$(".product_list").hover(function(){ 
$(this).css("background-color","#ddd"); 
},function() { 
$(this).css("background-color","#eee"); 
}); 
}); 
</script> 
</html>
Javascript 相关文章推荐
jquery中常用的SET和GET
Jan 13 Javascript
JavaScript中setInterval的用法总结
Nov 20 Javascript
jQuery实现动画效果的简单实例
Jan 27 Javascript
关于js里的this关键字的理解
Aug 17 Javascript
js实现横向伸展开的二级导航菜单代码
Aug 28 Javascript
AngularJS压缩JS技巧分析
Nov 08 Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
Aug 28 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
Oct 26 Javascript
详解ECMAScript2019/ES10新属性
Dec 06 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
javascript读写json示例
Apr 11 #Javascript
javascript如何判断输入的url是否正确
Apr 11 #Javascript
javascript判断office版本示例
Apr 11 #Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
Apr 11 #Javascript
jquery解析xml字符串简单示例
Apr 11 #Javascript
代码获取历史上的今天发生的事
Apr 11 #Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
Apr 11 #Javascript
You might like
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
js验证表单第二部分
2006/11/25 Javascript
json简单介绍
2008/06/10 Javascript
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
Python操作json数据的一个简单例子
2014/04/17 Python
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
Python实现识别手写数字大纲
2018/01/29 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
基于Python实现天天酷跑功能
2021/01/06 Python
python爬取微博评论的实例讲解
2021/01/15 Python
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
大学生写自荐信的技巧
2014/01/08 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
幼儿园大班新学期寄语
2014/01/18 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
入党个人总结范文
2015/03/02 职场文书