瀑布流这个概念一直不是很理解,看到别人可以实现,自己弄了很久还是不能实现就很纠结。瀑布流这根刺就一直扎在我心里,一次偶然的机会看到别人实现了瀑布流,我想我是不是也应该再继续把这个未完成的任务画一个圆满符号?所以坚持加上强迫自己好好思考,这里引用了别人瀑布流的图片(ps:没有去看实现方法,那些js代码看着晕乎乎的,没jquery简单,@_@)。

  在这里我采用了我认为简单的方法实现它,可能还有很多问题,希望大家能积极指正,谢谢~ O(∩_∩)O。

一、css代码

            .box-inner {
position: relative;
width: 1800px;
margin: 50px auto;
background: red;
}
.box-inner ul li {
position: absolute;
padding-bottom: 10px;
border: 2px solid gray;
text-align: center;
}

二、html代码

<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="../jquery-1.10.2.js"></script>
<link rel="stylesheet" href="../reset.css"/>
</head>
<body>
<div class="box">
<div class="box-inner">
<ul>
<li><img src="data:images/image_1.jpg"/><p>1</p></li>
<li><img src="data:images/image_2.jpg"/><p>2</p></li>
<li><img src="data:images/image_3.jpg"/><p>3</p></li>
<li><img src="data:images/image_4.jpg"/><p>4</p></li>
<li><img src="data:images/image_5.jpg"/><p>5</p></li>
<li><img src="data:images/image_6.jpg"/><p>6</p></li>
<li><img src="data:images/image_7.jpg"/><p>7</p></li>
<li><img src="data:images/image_8.jpg"/><p>8</p></li>
<li><img src="data:images/image_9.jpg"/><p>9</p></li>
<li><img src="data:images/image_10.jpg"/><p>10</p></li>
<li><img src="data:images/image_1.jpg"/><p>11</p></li>
<li><img src="data:images/image_2.jpg"/><p>12</p></li>
<li><img src="data:images/image_3.jpg"/><p>13</p></li>
<li><img src="data:images/image_4.jpg"/><p>14</p></li>
<li><img src="data:images/image_5.jpg"/><p>15</p></li>
<li><img src="data:images/image_6.jpg"/><p>16</p></li>
<li><img src="data:images/image_7.jpg"/><p>17</p></li>
<li><img src="data:images/image_8.jpg"/><p>18</p></li>
<li><img src="data:images/image_9.jpg"/><p>19</p></li>
<li><img src="data:images/image_10.jpg"/><p>20</p></li>
<li><img src="data:images/image_1.jpg"/><p>21</p></li>
<li><img src="data:images/image_2.jpg"/><p>22</p></li>
<li><img src="data:images/image_3.jpg"/><p>23</p></li>
<li><img src="data:images/image_4.jpg"/><p>24</p></li>
<li><img src="data:images/image_5.jpg"/><p>25</p></li>
</ul>
</div>
</div> </body>
</html>

三、jquery代码

$(function(){
var i = 0;
var next = 0;
$(".box-inner ul li").each(function(){
var width = $(this).width();
var allWidth = width*i;/* 表示所有图片总宽度 */
if(allWidth<1800){/* 表示为第一行 */
var cssObj = {"left":allWidth};
$(this).css(cssObj);
i++;
next = i;/* 将i值赋给next,当换行时next一行总数就保持不变了 */
}else{
/* 这边获取到的next就是每行总个数 */
var height = $(".box-inner ul li").eq(i-next).height()+$(".box-inner ul li").eq(i-next).offset().top-$(".box-inner").offset().top;/* 图片上一行对应地方的高度加上它上面偏移top减去box-inner偏移高度 */
var newLineWidth = width*(i%next);/* 每一行显示宽度的形式都是一样的,i整除next的值是0,1,2,... */
var otherObj = {"left":newLineWidth,"top":height};
$(this).css(otherObj);
i++;
}
});
});

jquery实现简单瀑布流的更多相关文章

  1. jquery实现简单瀑布流代码

    测试环境:ie8 ff13.0.1  chrome22 可以将分页获取的内容依次填入四个div中,瀑布流的分页可以以多页(比如5页)为单位二次分页,这样可以减少后台算法的复杂度 <!DOCTYP ...

  2. Jquery实现图片瀑布流思路-简单版

    目录 Jquery实现图片瀑布流思路-简单版 1.预备 2.开始 1.声明 2.主体 3.窗体大小改变事件 Jquery实现图片瀑布流思路-简单版 注意:本篇文章基于知道每张图片的实际尺寸的情况下 特 ...

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

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

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

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

  5. jQuery无限载入瀑布流 【转载】

    转载至 http://wuyuans.com/2013/08/jquery-masonry-infinite-scroll/ jQuery无限载入瀑布流 好久没更新日志了,一来我比较懒,二来最近也比较 ...

  6. jQuery动态网格瀑布流插件Masonry

    Masonry是一款非常强大的jQuery动态网格布局插件,可以帮助开发人员快速开发瀑布流界面效果.和CSS中float的效果不太一样的地方在于,float先水平排列,然后再垂直排列,使用Masonr ...

  7. iOS之简单瀑布流的实现

    iOS之简单瀑布流的实现   前言 超简单的瀑布流实现,这里说一下笔者的思路,详细代码在这里. 实现思路 collectionView能实现各中吊炸天的布局,其精髓就在于UICollectionVie ...

  8. jquery插件实现瀑布流

    jquery插件实现瀑布流<!DOCTYPE html><html lang="en"><head> <meta charset=&quo ...

  9. jQuery淡入淡出瀑布流效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. SQLite的基本用法

    SQLite是Android自带的轻量级数据库,接口封装的很好,不会SQL的也能很好的使用. 接下来讲一下怎么创建数据库.通过adb查看数据表和数据.增删查改. 一.创建数据库 Android封装了S ...

  2. dclcommon200.bpl

    xe6 dclcommon200.bpl xe7 dclcommon210.bpl xe8  dclcommon220.bpl xe7,xe8都有对应的文件,xe6为何没有?

  3. Linux运维常见故障排查和处理的33个技巧汇总

    作为linux运维,多多少少会碰见这样那样的问题或故障,从中总结经验,查找问题,汇总并分析故障的原因,这是一个Linux运维工程师良好的习惯.每一次技术的突破,都经历着苦闷,伴随着快乐,可我们还是执着 ...

  4. c# typeof 与 Type.GetType 使用与效率对比

    static void ReflectionTest() {//测试两种反射的效率问题 //Type.GetType()只能在同一个程序集中使用,typeof则可以跨程序集(assembly) //通 ...

  5. chrome浏览器控制台创建js脚本并执行

    Chrome的snippets是小脚本,还可以创作并在Chrome DevTools的来源面板中执行.您可以访问和从任何页面运行它们.当你运行一个片段,它从当前打开的页面的上下文中执行.本文主要讲如何 ...

  6. Android 4.x 获取存储卡路径的方式

    http://blog.sina.com.cn/s/blog_8daaa9ea0101mx7f.html     以前的Android(4.1之前的版本)中,SDcard跟路径通过“/sdcard”或 ...

  7. AlphaTesting

    [Alpha Testing] The alpha test is a last chance to reject a pixel from being written to the screen. ...

  8. sql解决主键冲突

    在数据插入的时候,假设主键对应的值已经存在,则插入失败!这就是主键冲突.当主键存在冲突(duplicate key)的时候,可以选择性的进行处理,即忽略.更新或者替换. 1.忽略 insert ign ...

  9. 解剖Nginx·模块开发篇(5)解读内置非默认模块 ngx_http_stub_status_module

    1 Background ngx_http_stub_status_module 是一个 Nginx 的内置 HTTP 模块,该模块可以提供 Nginx 的状态信息.默认情况下这个模块是不被编译进来的 ...

  10. Greeplum 系列(四) 数据的装载与卸裁

    Greeplum 系列(四) 数据的装载与卸裁 装载数据有以下种方法: insert copy 外部表 gpload 下面以 member_delta 表为例分别介绍这四种方法. create tab ...