瀑布流布局代码一例


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 图像裁剪插件Jcrop的简单使用
May 22 Javascript
JQuery jsonp 使用示例代码
Aug 12 Javascript
jQuery中prev()方法用法实例
Jan 08 Javascript
javascript制作的简单注册模块表单验证
Apr 13 Javascript
jQuery Checkbox 全选 反选的简单实例
Nov 29 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
Jul 06 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
Jul 12 Javascript
浅谈ES6新增的数组方法和对象
Aug 08 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
Dec 11 Javascript
解决iView中时间控件选择的时间总是少一天的问题
Mar 15 Javascript
基于layui table返回的值的多级嵌套的解决方法
Sep 19 Javascript
基于javascript canvas实现五子棋游戏
Jul 08 Javascript
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
用PHP制作静态网站的模板框架(二)
2006/10/09 PHP
php封装一个异常的处理类
2017/06/08 PHP
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
Python内置模块logging用法实例分析
2018/02/12 Python
python pygame模块编写飞机大战
2018/11/20 Python
六行python代码的爱心曲线详解
2019/05/17 Python
python语言基本语句用法总结
2019/06/11 Python
python如何实现代码检查
2019/06/28 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
介绍下Lucene建立索引的过程
2016/03/02 面试题
书法比赛获奖感言
2014/02/10 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
维稳承诺书
2015/01/20 职场文书
音乐教师个人总结
2015/02/06 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书