瀑布流布局代码一例


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 相关文章推荐
使用Modello编写JavaScript类
Dec 22 Javascript
innerHTML,outerHTML,innerTEXT三者之间的区别
Jan 28 Javascript
用jquery实现自定义风格的滑动条实现代码
Apr 26 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
Feb 10 Javascript
JS小游戏之象棋暗棋源码详解
Sep 25 Javascript
js实现一个链接打开两个链接地址的方法
May 12 Javascript
javascript基于DOM实现权限选择实例分析
May 14 Javascript
javascript与Python快速排序实例对比
Aug 10 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
Sep 14 Javascript
JS实现的添加弹出层并完成锁屏操作示例
Apr 07 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
Jan 21 jQuery
基于jquery实现左右上下移动效果
May 02 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
php获取新浪微博数据API实例
2013/11/12 PHP
php实现天干地支计算器示例
2014/03/14 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
PHP实现简易计算器功能
2020/08/28 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
javascript 冒号 使用说明
2009/06/06 Javascript
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
解决vue页面刷新或者后退参数丢失的问题
2018/03/13 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
python实现手机销售管理系统
2019/03/19 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
感恩节活动策划方案
2014/05/16 职场文书
项目工作说明书
2014/07/29 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
交流会主持词
2015/07/02 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android