瀑布流布局——jquery

首先确定定位,因为.box的宽度是确定的,根据屏幕的宽度来调整.box的列数,所以#content的宽度是随着.box的列数变化而变化的,并且需要保持相对于body居中。

因此需要给#content添加定位position: relative;

而.box的定位第一行relative没问题,除了第一行,其他行都是需要调整其top和left,使他们补齐和对其,因此其他行的定位需要absolute。

因此.box不需要设定position,后期动态为第二行以上的添加absolute。

.box之间的位移选择使用padding,因为这容易计算实际宽度和高度,后面需要用到。

function waterfall(){
        //先计算单个box的宽度,再计算当前窗口可以放下几列box
        var boxwidth=$(".box").outerWidth();
        var boxcol=Math.floor($("body").width()/boxwidth);
        //调整#content的宽度,使其与box的总宽度匹配,并相对窗口居中
        $("#content").width(boxcol*boxwidth).css("margin","0 auto");
        //初始一个数组,用于存放每一列box的总高度
        var arr=[];
        //对所有box进行遍历,执行box的定位工作
        $(".box").each(function(i,a){
            //第一行无需定位,只需要得到初始高度值
            if(i<boxcol){
                arr[i]=$(this).outerHeight();
            }
            //第二行以上需要为每一个box定位,定位规则是前一行的总高度最小的box列优先排放
            else{
                //找到所有列的总高度的最小值
                var minHeight=Math.min.apply(null,arr);
                //找到最小高度列的索引值
                var minIndex=$.inArray(minHeight,arr);
                //对当前遍历对象执行绝对定位,top为最小高度列的值,left为最小高度列当前的left
                $(this).css({
                    ‘position‘:‘absolute‘,
                    ‘top‘:minHeight+‘px‘,
                    ‘left‘:minIndex*boxwidth+‘px‘
                });
                //重置最小高度列的值,需加上当前遍历对象的高度
                arr[minIndex]+=$(this).outerHeight();
            }
        });
    }
时间: 2024-10-16 13:34:21

瀑布流布局——jquery的相关文章

网页瀑布流布局jQuery实现代码

网页瀑布流布局jQuery实现代码 这篇文章主要为大家详细介绍了网页瀑布流布局jQuery实现方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 什么是瀑布流网页布局? 瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部. 下面来看代码,用纯CSS3来做看效果怎样! HTML 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2

瀑布流布局--jQuery写法

HTML 1 <div id="main"> 2 <div class="box"> 3 <div class="pic"> 4 <img src="images/0.jpg" alt=""> 5 </div> 6 </div> 7 <div class="box"> 8 <div class=&q

10几款网站瀑布流布局图片无限加载动效

jQuery选项卡形式图片瀑布流布局选项卡切换效果代码 jquery masonry瀑布流插件制作图片瀑布流布局代码 原生js简单瀑布流图片无限加载带鼠标悬停图片遮罩效果 jquery masonry瀑布流插件制作图片瀑布流布局代码 jquery柔韧性的图片滑动瀑布流布局 jquery时间轴插件文字图片瀑布流布局时间轴特效(不兼容IE678) modernizr html5图片预加载瀑布流布局鼠标悬停动画效果代码 jquery.waterfall.js自动底部填充对齐的瀑布流布局代码 jquer

用Masonry和jQuery.lazyload插件实现网页瀑布流布局

瀑布流布局 我们常能在网上看到很多瀑布流布局的页面,尤其是很多图片网站,例如百度图片.这种最典型的瀑布流布局,每个元素的宽度是固定的,但图片长度各不相同,于是通过下图这种样子竖着排列了下来,达到了最大的页面空间利用率. 因为对前端开发不了解,一开始为了找到这种布局叫什么名字也是花了我好久时间o(╯□╰)o 瀑布流布局不局限于等宽布局,例如下面这种形式也可以,来自Masonry官网截图. Masonry官网 http://masonry.desandro.com/ 瀑布流布局作为一种响应式布局,网

jquery.masonry + jquery.infinitescroll 实现瀑布流布局

转载自:http://www.cnblogs.com/liubiaocai/archive/2013/04/26/3044503.html 最近瀑布流布局非常流行,国内大大小小的瀑布流布局的网站都很多了,比如美丽说.蘑菇街.花瓣等,关于瀑布流布局的资料打开可以百度自己看了,这里介绍两个jquey插件实现瀑布流布局和动态加载数据(分页加载). 1.jquery.masonry,目前布局流行的瀑布流插件有很多,http://www.csswang.com/resource/2261.html,这里有

jQuery模拟瀑布流布局

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>瀑布流</title> <style type="text/css"> *{margin: 0; padding: 0; } body{text-align: center;} .content{margin: 0 auto ; text-align: center

jQuery Wookmark 瀑布流布局

瀑布流布局非常适合大量图片的展示,一改过去裁剪图片尺寸统一的排版,每张图片都能完全展示,并错落有致,让人眼前一亮. 版本: jQuery v1.4.3+ jQuery Wookmark Load v1.4.8 注意事项: 项目中的 img 元素的 width 和 height 属性需要写,否则定位会不准确.(可以用 JavaScript 实时获取图片的宽高,但图片数量过多时,这将是一件不靠谱的事情,如果你执意要这么做,可以参考这个 Demo) 查看 Demo 下载 jQuery Wookmark

AJAX+json+jquery实现预加载瀑布流布局

宽度是一定的高度不定的瀑布流布局 也可以说是无缝拼图 当浏览器滚动到底部时候自动加载图片 加载的图片地址用json 在img.js里 ,还有正在加载动画是用 css3制作的 在ff等支持css3可以显示 你如果想全面支持浏览器可以用gif动画 代码里有详细解释就不多说了 ?1. [代码]预加载/瀑布流  <!doctype html><html><head><meta charset="utf-8"><title>定宽Jque

jQuery响应式网站图片无限加载瀑布流布局

这是一款效果非常酷的 jQuery瀑布流布局无限加载图片效果.整个页面采用响应式布局,图片采用jQuery.Lazyload延时加载技术,提升整个页面的加载速度. 该瀑布流插件还使用BlocksIt技术,在图片加载时有交互抢占位置的动画特效,效果非常炫酷. 在线演示:http://www.htmleaf.com/Demo/2014100223.html 下载地址:http://www.htmleaf.com/jQuery/pubuliuchajian/2014100224.html