Jquery 实现瀑布流布局
//保证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 实现瀑布流布局的更多相关文章
- jQuery Wookmark 瀑布流布局
瀑布流布局非常适合大量图片的展示,一改过去裁剪图片尺寸统一的排版,每张图片都能完全展示,并错落有致,让人眼前一亮. 版本: jQuery v1.4.3+ jQuery Wookmark Load v1 ...
- jQuery模拟瀑布流布局
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- jQuery实现瀑布流布局详解(PC和移动端)
首先我们将如下样式的若干个单元写进body中,并将“box”向左浮动: <div class="box"> <img class="img" ...
- jQuery实现瀑布流布局
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- JS 瀑布流布局
瀑布流布局 HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...
- myWaterfall - jQuery瀑布流布局插件
myWaterfall - jQuery瀑布流布局插件 Demo http://jsfiddle.net/q3011893/p5k2ogy8/embedded/result,html,css,js/ ...
- jquery实现简单瀑布流布局(续):图片懒加载
# jquery实现简单瀑布流布局(续):图片懒加载 这篇文章是jquery实现简单瀑布流布局思想的小小扩展.代码基于前作的代码继续完善. 图片懒加载就是符合某些条件时才触发图片的加载.最常见的具体表 ...
- jquery实现简单瀑布流布局
jquery实现简单瀑布流布局 是开头都会说的原理 瀑布流布局有两种,一种是固定列,一种是非固定列.在此主要记述第一种的实现. 固定列的特征是:无论页面如何缩放,每行的总列数都一致. 一行4列的瀑布流 ...
- jQuery Wookmark Load 瀑布流布局实例演示
瀑布流布局非常适合大量图片的展示,一改过去裁剪图片尺寸统一的排版,每张图片都能完全展示,并错落有致,让人眼前一亮. 版本: jQuery v1.4.3+ jQuery Wookmark Load v1 ...
随机推荐
- [一]初识SpringMVC
是什么? web开发框架 为什么用? 功能强大 怎么做? 1.导入jar包 2.配置web.xml <?xml version="1.0" encoding="UT ...
- iPad开发(相对于iPhone开发时专有的API)
iPad开发 一.iPad开发简介 1.什么是iPad 一款苹果公司于2010年发布的平板电脑 定价介于苹果的智能手机iPhone和笔记本电脑产品之间 跟iPhone一样,搭载的是iOS操作系统 2. ...
- Objective-C中一种消息处理方法performSelector: withObject:
Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法.所以Objective-C可以在runtime的 ...
- MediaProvider 数据库Audio相关表格相应关系
Android的MediaProvider提供了一系列的Audio,Video,image等表格,用于APP检索相关的音视频图片信息. 首先来看看Audio相关的表格: ×图中颜色同样的部分表示来自于 ...
- JSON数据的中文乱码问题
问题描述: 在firefox中返回的JSON数据没有出现乱码,但在GridPanel中显示乱码,而jsp页面和xml文件都是utf-8类型. 解决方案: 在 PrintWriter out = res ...
- 敏捷软件工程(agile software development) VS传统软件工程(traditional software development)
敏捷软件工程(agile software development) VS传统软件工程(traditional software development) Agile principle ...
- Android免坑指南(一)Sugar与SQLite
最近在Android手机开发中使用了ORM框架Sugar1.4,节省了大量代码,同时也遇到不少麻烦,记录如下: 1. 使用group by将查询结果转换为POJO对象 在Sugar1.4中,可以使用如 ...
- Android开发5大布局方式详解
Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...
- SecurityException:Not allowed to start service Intent ,without permission not exported from
本来是学长以前的项目,我正在重做一遍.结果突然出现了异常,我很是不解啊,怎么莫名其妙的就出现异常了呢?我昨天用还是好好的,根本就没动过源代码.于是在网上开始了一遍又一遍的查询,有的说要加权限.有的说这 ...
- Dojo Widget中的全局变量
转自http://blog.163.com/mqsy_yj/blog/static/2940499220121014115338929/ 前期设计了一个清除widget的功能,虽然可以从html文件中 ...