zoukankan      html  css  js  c++  java
  • [Jquery]瀑布流

    $(window).load(function(e){
        waterfall();
        var dataInt={'data':[{'src':'1.jpg'},{'src':'2.jpg'},{'src':'3.jpg'},{'src':'4.jpg'}]};
        $(window).scroll(function(){
            if(checkscrollside()){
                var $main=$("#main");
                $.each(dataInt.data,function(i){
                    var $oPin=$('<div>').addClass("pin").appendTo($main);
                    var $oBox=$('<div>').addClass("box").appendTo($oPin);
                    var $oImg=$('<img>');
                    $oImg.attr("src",'./images/'+$(this).attr("src")).appendTo($oBox);
                });
                waterfall();
            };
        });
        
        function waterfall(){
            var $main=$("#main");
            var $box=$(".box");
            var $pin=$(".pin");
            var $img=$pin.find("img");
            var pinw=$pin.eq(0).outerWidth();
            var ww=$(window).width();
            var col=Math.floor(ww/pinw);
            $main.css({"width":col*pinw,"margin":"0 auto"});
            var pinArr=[];       //定义数组不需要美元符
            $pin.each(function(i) {
                var pinh=$pin.eq(i).outerHeight();
                if(i<col){
                    pinArr[i]=pinh;
                }else{
                    var minH=Math.min.apply( null,pinArr);
                    var index=$.inArray(minH,pinArr);   //确定第一个参数在数组中的位置
                    var pinl=$pin.eq(index).position().left;       //用.offset().left会有15偏差
                    $(this).css({"position":"absolute","top":minH,"left":pinl});
                    pinArr[index]+=$pin.eq(i).outerHeight();
                }
            });
        }

        function checkscrollside(){
            var $pin=$(".pin");
            var documentH=$(document).height();
            var scrollTop=$(window).srcollTop();
            var lastpinH=$pin.eq($pin.length-1).offset().top+Math.floor($pin.eq($pin.length-1).outerHeight()/2);
            return(lastpinH<documentH+scrollTop)?true:false;
        }    
    })

  • 相关阅读:
    面试题八 二进制中 1 的个数
    面试题七 斐波那契数列
    面试题六 用两个栈实现队列
    第 3 章 第 2 题 求级数问题 递归法实现
    第 3 章 第 1 题 精简冗余 if 语句问题 使用数组实现
    第 2 章 第 10 题 测量电灯泡体积问题
    第 2 章 第 9 题 顺序 & 二分搜索效率分析问题
    带缓冲的IO( 标准IO库 )
    Linux 中权限控制实例
    Linux 中权限的再讨论( 下 )
  • 原文地址:https://www.cnblogs.com/zhangwenkan/p/3885426.html
Copyright © 2011-2022 走看看