`

JQ 用最少代码实现瀑布流布局

 
阅读更多
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title></title>
<style>
html{_background:url(about:blank);}
body{ background-color:#fff; color:#333; overflow-x: hidden;}
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,
button,input,textarea,th,td{margin:0;padding:0;}
body,button,input,select,textarea{ font:12px/1.5 Microsoft YaHei,Tahoma,Helvetica,Arial,simsun}
address,cite,dfn,em,var,i{font-style:normal;}
ul,ol{list-style:none;}
fieldset,img{border:0;}
h1{font-size:18px;}
h2{font-size:14px; font-weight:bold;}
h3{font-size:14px; font-weight:400;}
h4,h5{font-size:12px; font-weight:400;}
input,textarea,button,select{font-size:12px; outline:none; resize:none; color:#333;}
button{cursor: pointer;}
table{border-collapse:collapse;border-spacing:0;}
.clear {clear:both; height:0; font-size:0; line-height:0; overflow:hidden;}
.cle:after, .clearfix:after, .clear_f:after, .cle_float:after{content:".";display:block;height:0;clear:both;visibility:hidden}
.cle, .clearfix, .clear_f, .cle_float{zoom:1}
.fl {float:left;}
.fr {float:right;}

a{text-decoration:none; color:#333; -webkit-transition: color .2s;-moz-transition: color .2s;-o-transition: color .2s; -ms-transition: color .2s;transition: color .2s;}
a:hover{text-decoration:underline; color: #ff7d8e;}
a:focus{outline:none;}
::selection {background:#ff7d8e; color:#fff;} 


#wrapper{width: 1008px; margin: 15px auto;}
/*品牌列表*/
.brand-list{width: 1100px; overflow: hidden; margin-left: -10px;}
.brand-list .brand-bd{position: relative; margin-left: 10px; margin-top: 5px;}
.brand-list .item{position: absolute; width: 202px; background-color: #f8f8f8; border: 1px solid #f8f8f8; padding: 18px; top:0; left: 40%; -webkit-transition: all 0.3s;-moz-transition: all 0.3s;-o-transition: all 0.3s;-ms-transition: all 0.3s;transition: all 0.3s;}
.brand-list .hover{box-shadow: 0px 1px 8px rgba(200,200,200,.6); background-color: #fff; border-color: #c8c8c8;}
.brand-list .additem{padding: 0; width: 240px; border: none; }

.brand-list .item h3{font-size: 42px; color: #666; font-family: arial; font-weight: bold; line-height: .8; margin-bottom: 20px;}
.brand-list .item p{margin-bottom: 15px;}
</style>
</head>
<body>
<div id="wrapper">
<!-- 品牌列表开始 -->
  <div class="brand-list">
    <div class="brand-bd cle" id="brand-waterfall">
        <!-- 循环字母模块 item -->
        <div class="item" id="brand-a">
            <h3>A</h3>
            <p><a href="#" target="_blank">ARDELL/艾黛尔</a></p>
            <p><a href="#" target="_blank">ANNASUI/安娜苏</a></p>
            <p><a href="#" target="_blank">ETUDEHOUSE/爱丽小屋</a></p>
            <p><a href="#" target="_blank">abeeco</a></p>
            <p><a href="#" target="_blank">AFU/阿芙</a></p>
            <p><a href="#" target="_blank">Egyptian-Magic-Cream/埃及魔法膏</a></p>
            <p><a href="#" target="_blank">adidas/阿迪达斯</a></p>
        </div>
        <div class="item" id="brand-b">
            <h3>B</h3>
            <p><a href="#" target="_blank">HERBORIST/佰草集</a></p>
            <p><a href="#" target="_blank">BURBERRY/巴宝莉/博柏利</a></p>
            <p><a href="#" target="_blank">BIOTHERM/碧欧泉</a></p>
            <p><a href="#" target="_blank">benefit/贝玲妃</a></p>
            <p><a href="#" target="_blank">Bavii/柏羽</a></p>
            <p><a href="#" target="_blank">PaulSmith/保罗史密夫</a></p>
            <p><a href="#" target="_blank">Bobbi Brown/芭比布朗</a></p>
            <p><a href="#" target="_blank">BVLGARI/宝格丽</a></p>
            <p><a href="#" target="_blank">PURE&MILD/泊美</a></p>
            <p><a href="#" target="_blank">baviphat/芭比菲特</a></p>
            <p><a href="#" target="_blank">Peter Thomas Roth/彼得罗夫</a></p>
            <p><a href="#" target="_blank">BeDOOK/比度克</a></p>
            <p><a href="#" target="_blank">BIODERMA/贝德玛</a></p>
            <p><a href="#" target="_blank">BKBarry-MBlistex/碧唇</a></p>
        </div>
        <div class="item" id="brand-c">
            <h3>C</h3>
            <p><a href="#" target="_blank">Fenix/长生鸟</a></p>
            <p><a href="#" target="_blank">For Beloved One/宠爱之名</a></p>
            <p><a href="#" target="_blank">CHARMZONE/婵真</a></p>
        </div>
        <div class="item" id="brand-d">
            <h3>D</h3>
            <p><a href="#" target="_blank">Dr.Jart+Dr.MJDior/迪奥</a></p>
            <p><a href="#" target="_blank">dodo</a></p>
            <p><a href="#" target="_blank">Dior/迪奥</a></p>
            <p><a href="#" target="_blank">Dove/多芬</a></p>
            <p><a href="#" target="_blank">DHC/蝶翠诗</a></p>
            <p><a href="#" target="_blank">Davidoff/大卫杜夫</a></p>
        </div>
        <div class="item" id="brand-e">
            <h3>E</h3>
            <p><a href="#" target="_blank">N-Dorphin/恩朵娉</a></p>
            <p><a href="#" target="_blank">OPERA/娥佩兰</a></p>
            <p><a href="#" target="_blank">ELF</a></p>
            <p><a href="#" target="_blank">eos</a></p>
        </div>
        <div class="item" id="brand-f">
            <h3>F</h3>
            <p><a href="#" target="_blank">芳草集</a></p>
            <p><a href="#" target="_blank">THEFACESHOP/菲诗小铺</a></p>
            <p><a href="#" target="_blank">Fanxishop/凡茜</a></p>
            <p><a href="#" target="_blank">FANCL/芳珂(芳凯尔)</a></p>
            <p><a href="#" target="_blank">VERSACE/范思哲</a></p>
        </div>
        <div class="item" id="brand-g">
            <h3>G</h3>
            <p><a href="#" target="_blank">ARDELL/艾黛尔</a></p>
            <p><a href="#" target="_blank">ANNASUI/安娜苏</a></p>
            <p><a href="#" target="_blank">ETUDEHOUSE/爱丽小屋</a></p>
            <p><a href="#" target="_blank">abeeco</a></p>
            <p><a href="#" target="_blank">AFU/阿芙</a></p>
            <p><a href="#" target="_blank">Egyptian-Magic-Cream/埃及魔法膏</a></p>
            <p><a href="#" target="_blank">adidas/阿迪达斯</a></p>
        </div>
        <div class="item" id="brand-h">
            <h3>H</h3>
            <p><a href="#" target="_blank">LAMER/海蓝之谜</a></p>
            <p><a href="#" target="_blank">BOCOTON/海诺丝丽</a></p>
            <p><a href="#" target="_blank">CO.E/韩伊</a></p>
            <p><a href="#" target="_blank">Herbacin/贺本清</a></p>
            <p><a href="#" target="_blank">花瑶花</a></p>
            <p><a href="#" target="_blank">花漾美姬</a></p>
            <p><a href="#" target="_blank">HEY NATURE/韩彩妮</a></p>
            <p><a href="#" target="_blank">Hipitch/黑龙堂</a></p>
        </div>
        <div class="item" id="brand-l">
            <h3>L</h3>
            <p><a href="#" target="_blank">LAMER/海蓝之谜</a></p>
            <p><a href="#" target="_blank">BOCOTON/海诺丝丽</a></p>
            <p><a href="#" target="_blank">CO.E/韩伊</a></p>
            <p><a href="#" target="_blank">CO.E/韩伊</a></p>
            <p><a href="#" target="_blank">CO.E/韩伊</a></p>
            <p><a href="#" target="_blank">Herbacin/贺本清</a></p>
            <p><a href="#" target="_blank">花瑶花</a></p>
            <p><a href="#" target="_blank">花漾美姬</a></p>
            <p><a href="#" target="_blank">HEY NATURE/韩彩妮</a></p>
            <p><a href="#" target="_blank">Hipitch/黑龙堂</a></p>
        </div>
        <div class="item" id="brand-m">
            <h3>M</h3>
            <p><a href="#" target="_blank">LAMER/海蓝之谜</a></p>
            <p><a href="#" target="_blank">BOCOTON/海诺丝丽</a></p>
            <p><a href="#" target="_blank">CO.E/韩伊</a></p>
            <p><a href="#" target="_blank">Herbacin/贺本清</a></p>
            <p><a href="#" target="_blank">花瑶花</a></p>
            <p><a href="#" target="_blank">花漾美姬</a></p>
            <p><a href="#" target="_blank">HEY NATURE/韩彩妮</a></p>
            <p><a href="#" target="_blank">Hipitch/黑龙堂</a></p>
        </div>
        <div class="item" id="brand-n">
            <h3>N</h3>
            <p><a href="#" target="_blank">LAMER/海蓝之谜</a></p>
            <p><a href="#" target="_blank">LAMER/海蓝之谜</a></p>
            <p><a href="#" target="_blank">LAMER/海蓝之谜</a></p>
            <p><a href="#" target="_blank">BOCOTON/海诺丝丽</a></p>
            <p><a href="#" target="_blank">CO.E/韩伊</a></p>
            <p><a href="#" target="_blank">Herbacin/贺本清</a></p>
            <p><a href="#" target="_blank">花瑶花</a></p>
            <p><a href="#" target="_blank">花漾美姬</a></p>
            <p><a href="#" target="_blank">HEY NATURE/韩彩妮</a></p>
            <p><a href="#" target="_blank">Hipitch/黑龙堂</a></p>
        </div>
    </div>
  </div>
  <!-- 品牌列表 end -->
</div>
<script type="text/javascript" src="jquery-1.10.1.min.js" ></script>
<script>
$(function(){
$('#brand-waterfall').waterfall();
});
// 瀑布流插件
// pannysp 2013.4.9
;(function ($) {
    $.fn.waterfall = function(options) {
        var df = {
            item: '.item',
            margin: 15,
            addfooter: true
        };
        options = $.extend(df, options);
        return this.each(function() {
            var $box = $(this), pos = [],
            _box_width = $box.width(),
            $items = $box.find(options.item),
            _owidth = $items.eq(0).outerWidth() + options.margin,
            _oheight = $items.eq(0).outerHeight() + options.margin,
            _num = Math.floor(_box_width/_owidth);

            (function() {
                var i = 0;
                for (; i < _num; i++) {
                    pos.push([i*_owidth,0]);
                } 
            })();
            //alert(pos);
            $items.each(function() {
                var _this = $(this),
                _temp = 0,
                _height = _this.outerHeight() + options.margin;

                _this.hover(function() {
                    _this.addClass('hover');
                },function() {
                    _this.removeClass('hover');
                });
                for (var j = 0; j < _num; j++) {
                    if(pos[j][1] < pos[_temp][1]){
                        // alert(pos[j][1]);
                        // alert(pos[_temp][1]);
                        //暂存top值最小那列的index
                        _temp = j;
                    }
                }
                this.style.cssText = 'left:'+pos[_temp][0]+'px; top:'+pos[_temp][1]+'px;';
                //插入后,更新下该列的top值
                pos[_temp][1] = pos[_temp][1] + _height;
            });

            // 计算top值最大的赋给外围div
            (function() {
                var i = 0, tops = [];
                for (; i < _num; i++) {
                    tops.push(pos[i][1]);
                }
                tops.sort(function(a,b) {
                    return a-b;
                });
                $box.height(tops[_num-1]);

                //增加尾部填充div
                if(options.addfooter){
                    addfooter(tops[_num-1]);
                }

            })();

            function addfooter(max) {
                var addfooter = document.createElement('div');
                addfooter.className = 'item additem';
                for (var i = 0; i < _num; i++) {
                    if(max != pos[i][1]){
                        var clone = addfooter.cloneNode(),
                        _height = max - pos[i][1] - options.margin;
                        clone.style.cssText = 'left:'+pos[i][0]+'px; top:'+pos[i][1]+'px; height:'+_height+'px;';
                        $box[0].appendChild(clone);
                    }
                }
            }

        });
    }
})(jQuery);
</script>
</body>
</html>

 

效果图:

 

  

 

 

 

 

  • 大小: 45.5 KB
分享到:
评论

相关推荐

    jQuery响应式图片瀑布流布局代码.zip

    总之,“jQuery响应式图片瀑布流布局代码”是一个结合了现代前端技术与优秀用户体验的设计实例,它通过jQuery实现了动态加载和响应式布局,为网站提供了优雅的图片展示方案。开发者可以参考这个项目学习如何构建类似...

    JQ 使用waterfall插件实现瀑布流

    瀑布流布局是一种常见的网页设计方式,它模仿了瀑布两侧连续不断的瀑布形态,使得网页上的内容可以自上而下、逐列加载,同时保持各列高度一致。在前端开发中,jQuery是一个广泛使用的JavaScript库,提供了丰富的API...

    jq实现瀑布流

    jQuery是一个广泛使用的JavaScript库,它简化了JavaScript的DOM操作,使得实现瀑布流布局变得更加便捷。 首先,我们要理解jQuery是如何工作的。jQuery的核心在于选择器(Selectors)、遍历(Traversing)和操作...

    js jq 瀑布流

    在JavaScript和jQuery库的支持下,实现瀑布流布局变得更加便捷。 JavaScript是一种轻量级的脚本语言,广泛应用于网页和网络应用开发,负责处理用户交互、动态内容更新等任务。jQuery则是一个高效的JavaScript库,它...

    瀑布流布局 有两种布局 里面有JS的方式也有JQ的插件 可自由选择

    在实现瀑布流布局时,通常有两种主要的方法:使用JavaScript原生代码和借助jQuery插件。 首先,让我们来看看JavaScript原生实现瀑布流布局的方式。原生JS实现的优点是灵活性高,能够更好地控制性能,但需要一定的...

    jQuery点击添加图片瀑布流布局效果

    【jQuery点击添加图片瀑布流布局效果】是一种常见的前端网页设计技术,主要应用于展示大量图片时,提供美观且高效的浏览体验。瀑布流布局,也被称为Pinterest式布局,因其图像逐个下落并形成类似瀑布的效果而得名。...

    简单的js实现瀑布流示例,相关技术jq

    简单的js实现瀑布流示例,相关技术jq。可借鉴。。。。

    jQuery手机端瀑布流布局代码.zip

    【jQuery手机端瀑布流布局代码】是一款针对移动设备优化的响应式布局解决方案,它利用了JavaScript库jQuery的强大功能,结合HTML5技术,为用户呈现了一种美观且灵活的展示方式,特别适合图片或内容丰富的网站,如...

    JQ 最少代码实现多图切换

    综上所述,"JQ 最少代码实现多图切换"是一个涉及HTML布局、CSS样式、jQuery选择器、动画函数、事件处理和数组操作等多个方面的综合实践。通过学习这个主题,开发者可以提升网页动态效果的创建能力,同时理解如何利用...

    兼容IE8的响应式网格瀑布流布局jQuery插件

    "兼容IE8的响应式网格瀑布流布局jQuery插件"是一个专门针对这一需求而设计的工具,尤其考虑到了对旧版浏览器,如IE8的支持。这款插件名为"Pinterest Grid",灵感来源于著名的图片分享网站Pinterest,它以其独特的...

    JQ 最少代码实现无缝滚动

    **标题:“JQ最少代码实现无缝滚动”** 在网页设计中,为了提供用户更好的浏览体验,无缝滚动效果常被用于长列表或者图片展示。JQuery(简称JQ)作为一个轻量级、功能丰富的JavaScript库,提供了简单易用的API来...

    JQ 瀑布流的插件

    “JQ瀑布流插件”通常是指基于jQuery的、用于实现瀑布流布局的JavaScript插件。这些插件简化了开发者实现瀑布流布局的过程,通过简单的API调用和配置选项,就能在网页上快速构建出美观的瀑布流布局。 这个压缩包中...

    jQuery网页全屏自适应图片瀑布流布局代码

    总结来说,jQuery网页全屏自适应图片瀑布流布局代码是结合了响应式设计、全屏展示以及瀑布流布局的一种技术,它利用jQuery的便利性,实现了在不同设备上展示图片的优雅方式。通过理解并掌握这一技术,开发者可以创建...

    JQ 最少代码实现选项卡切换

    标题 "JQ 最少代码实现选项卡切换" 涉及到的是使用 jQuery(简称 JQ)库来创建一个简洁的选项卡切换效果。在网页设计中,选项卡是一种常见的用户界面元素,它允许用户在有限的空间内查看多个相关的但不同时显示的...

    JQ 最少代码实现全选和不全选

    标题“JQ最少代码实现全选和不全选”涉及到的是如何使用jQuery来控制多选框(checkboxes)的全选与反选功能。这种功能常见于数据管理界面,用户可以快速选择或取消选择所有项目。下面将详细解释这一知识点。 一、...

    JQ 最少代码实现返回顶部功能

    在这个场景下,我们关注的是如何使用jQuery这一流行的JavaScript库来实现这一功能,而尽可能减少代码量。jQuery以其简洁易用的API著称,使得这种功能的实现变得非常快捷。 首先,我们需要在HTML中添加一个用于触发...

    瀑布流图片布局以及打开点击图片动画特效

    在实现瀑布流图片布局时,通常会用到JavaScript库,如jQuery,配合CSS3来处理动态加载和布局计算。在这个插件中,`jquery-pbl`很可能是一个基于jQuery实现的瀑布流布局插件。它可能包含了图片的加载、布局计算、以及...

    jQuery实现无限加载瀑布流特效

    瀑布流布局,也被称为Masonry布局,是一种网页元素排列方式,常见于图片展示或内容推荐网站,其特点是每个元素(如图片)根据其自身大小垂直对齐,形成类似瀑布倾泻的效果。在网页中实现这样的效果,jQuery是一个...

Global site tag (gtag.js) - Google Analytics