//保证img文件夹下有图片
//引入jquery
<script src="Script/jquery-1.7.2.js"></script> <style>
* {
padding: 0;
margin: 0;
} #main {
position: relative;
} .pin {
padding: 10px 0 0 10px;
float: left;
} .box {
padding: 10px;
border: 1px solid #ccc;
box-shadow: 0 0 6px #ccc;
border-radius: 5px;
height:90%;
} .box img {
width: 162px;
height: auto;
}
</style>
<body>
<form id="form1" runat="server">
<div id="main">
<div class="pin">
<div class="box">
<img src="img/1.jpg" />
</div>
</div> <div class="pin">
<div class="box">
<img src="img/2.jpg" />
</div>
</div>
<div class="pin">
<div class="box">
<img src="img/3.jpg" />
</div>
</div>
<div class="pin">
<div class="box">
<img src="img/4.jpg" />
</div>
</div>
<div class="pin">
<div class="box">
<img src="img/5.jpg" />
</div>
</div>
<div class="pin">
<div class="box">
<img src="img/6.jpg" />
</div>
</div>
<div class="pin">
<div class="box">
<img src="img/7.jpg" />
</div>
</div>
<div class="pin">
<div class="box">
<img src="img/8.jpg" />
</div>
</div>
</div>
</form>
</body>

////////////js

<script>
window.onload = function () {
waterfall();//加载时成瀑布流效果
var imgss = { "data": [{ "src": "img/1.jpg" }, { "src": "img/2.jpg" }, { "src": "img/3.jpg" }, { "src": "img/4.jpg" }, { "src": "img/5.jpg" }, ] };
$(window).on("scroll", function () {
if (fun_scroll()) {
for (var i = 0; i < imgss.data.length; i++) {
var div_pin = $("<div>").addClass("pin");
var div_box = $("<div>").addClass("box");
div_box.appendTo(div_pin);
var img = $("<img>").attr("src", imgss.data[i].src);
img.appendTo(div_box);
div_pin.appendTo($("#main"));
waterfall();
}
}
});
} //设置瀑布流
function waterfall() {
////获取单个宽度
/////////////$(".pin").width();//只获取元素的真实宽度
/////////////document.getElementById("id")offsetWidth;//获取元素加上外间距的宽度
var objWidth = $(".pin:eq(0)").get(0).offsetWidth;//.width();
////获取每行个数document.documentElement.clientWidth
var num = Math.floor($(document).width() / objWidth);
$("#main").css({ "width": (objWidth * num) + "px", "margin": "0 auto" });
var heigs = [];
$(".pin").each(function (i, obj) {
if (i < num) {
heigs.push($(obj).get(0).offsetHeight);
} else {
//获取最小的值
var mixh = Math.min.apply(null, heigs);
//获取值的索引
var inx = $.inArray(mixh, heigs, null);
$(obj).css({
"position": "absolute",
"top": mixh,
"left": $(".pin").eq(inx).position().left,
});
heigs[inx] += $(obj).get(0).offsetHeight;
}
});
} //滚动,滚动条时动态加载图片
var fun_scroll = function () {
//最后一个元素距离顶部的高度+自身一半高度
var lastObjHeight = Math.floor($(".pin").last().offset().top) + Math.floor($(".pin").last().height() / 2);
//卷进去的高度
var scrollHeight = document.documentElement.scrollTop || document.body.scrollTop;
//屏幕的高度
var deviceheight = document.documentElement.clientHeight;
return ((deviceheight + scrollHeight) > lastObjHeight) ? true : false;
}
</script>


Jquery 实现瀑布流布局的更多相关文章

  1. jQuery Wookmark 瀑布流布局

    瀑布流布局非常适合大量图片的展示,一改过去裁剪图片尺寸统一的排版,每张图片都能完全展示,并错落有致,让人眼前一亮. 版本: jQuery v1.4.3+ jQuery Wookmark Load v1 ...

  2. jQuery模拟瀑布流布局

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. jQuery实现瀑布流布局详解(PC和移动端)

    首先我们将如下样式的若干个单元写进body中,并将“box”向左浮动: <div class="box">  <img class="img" ...

  4. jQuery实现瀑布流布局

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. JS 瀑布流布局

    瀑布流布局 HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...

  6. myWaterfall - jQuery瀑布流布局插件

    myWaterfall - jQuery瀑布流布局插件 Demo http://jsfiddle.net/q3011893/p5k2ogy8/embedded/result,html,css,js/ ...

  7. jquery实现简单瀑布流布局(续):图片懒加载

    # jquery实现简单瀑布流布局(续):图片懒加载 这篇文章是jquery实现简单瀑布流布局思想的小小扩展.代码基于前作的代码继续完善. 图片懒加载就是符合某些条件时才触发图片的加载.最常见的具体表 ...

  8. jquery实现简单瀑布流布局

    jquery实现简单瀑布流布局 是开头都会说的原理 瀑布流布局有两种,一种是固定列,一种是非固定列.在此主要记述第一种的实现. 固定列的特征是:无论页面如何缩放,每行的总列数都一致. 一行4列的瀑布流 ...

  9. jQuery Wookmark Load 瀑布流布局实例演示

    瀑布流布局非常适合大量图片的展示,一改过去裁剪图片尺寸统一的排版,每张图片都能完全展示,并错落有致,让人眼前一亮. 版本: jQuery v1.4.3+ jQuery Wookmark Load v1 ...

随机推荐

  1. [struts2]struts结合ECharts的用法

    <script src="http://echarts.baidu.com/build/dist/echarts-all.js"></script> < ...

  2. windows 下安装elasticsearch

    1.下载 elasticsearch-2.3.3.zip 注意::elasticsearch 版本太高的话,java运行不起来 elasticsearch-1.5.2下载地址 http://downl ...

  3. javascript-智能社-笔记

    JavaScript是什么 JavaScript就是修改样式 编写JS的流程 布局:HTML+CSS 属性:确定要修改哪些属性 事件:确定用户做哪些操作(产品设计) 编写JS:在事件中,用JS来修改页 ...

  4. CAS认证(1):流程详解

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  5. Bootstrap-分页插件Paginator

    Bootstrap Paginator是一款基于Bootstrap的js分页插件,功能很丰富,个人觉得这款插件已经无可挑剔了.它提供了一系列的参数用来支持用户的定制,提供了公共的方法可随时获得插件状态 ...

  6. MHA工作原理

    http://my.oschina.net/u/1440383/blog/313798?fromerr=Tvth3ODF

  7. bind的例子

    10.24 给定一个string,使用bind和check_size在一个int的vector中查找第一个大于string长度的值. #include<iostream> #include ...

  8. win7 设置自动关机

    1.C:\Windows\System32\shutdown.exe 2. -s:表示关机: -r:表示重启: -t:表示时间,以秒为单位: -a:表示取消shutdown计划,即表示取消关机或重启命 ...

  9. [Form Builder]:CREATE_GROUP Built-in

    Description  Creates a non-query record group with the given name. The new record group has no colum ...

  10. MVC知识总结(前序)

    距离2015年的来临还有1天的时间,是时候总结一下今年的经过脑子的知识了,由于今年里工作中接触MVC的时间特别多,所以打算针对MVC这个东西的知识进行一个总结,好歹对得起在几个项目中用了MVC来进行开 ...