瀑布流布局代码一例


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 相关文章推荐
js获取select标签的值且兼容IE与firefox
Dec 30 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
Mar 05 Javascript
javascript实现禁止鼠标滚轮事件
Jul 24 Javascript
JS实现的页面自定义滚动条效果
Oct 26 Javascript
Javascript函数中的arguments.callee用法实例分析
Sep 16 Javascript
canvas实现图片根据滑块放大缩小效果
Feb 24 Javascript
canvas实现爱心和彩虹雨效果
Mar 09 Javascript
JS中注入eval, Function等系统函数截获动态代码
Apr 03 Javascript
element中el-container容器与div布局区分详解
May 13 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
Oct 18 Javascript
javascript实现放大镜功能
Dec 09 Javascript
javascript代码实现简易计算器
Jan 25 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
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
使用PHP模拟HTTP认证
2006/10/09 PHP
php 数学运算验证码实现代码
2009/10/11 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
PHP及Zend Engine的线程安全模型分析
2011/11/10 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
Position属性之relative用法
2015/12/14 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
[01:52]PWL S2开团时刻第四期——DOTA2成语故事
2020/12/03 DOTA
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
Python实现不规则图形填充的思路
2020/02/02 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
tensorflow使用CNN分析mnist手写体数字数据集
2020/06/17 Python
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
党课知识竞赛主持词
2014/04/01 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
2014年管理工作总结
2014/11/22 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
运动会开幕式主持词
2015/07/01 职场文书
高中政治教学反思
2016/02/23 职场文书
员工工作心得体会
2019/05/07 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
Python借助with语句实现代码段只执行有限次
2022/03/23 Python
详解CSS3浏览器兼容
2022/12/24 HTML / CSS