zoukankan      html  css  js  c++  java
  • 瀑布流

    <!Doctype>
    <html>
     <head>
       <title>瀑布流布局</title>
       <meta charset="utf-8" />
     </head>
     <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
     <style type="text/css">
        *{padding: 0;margin:0;}
        #main{
            position: relative;
        }
        .pin{
            padding: 15px 0 0 15px;
            float:left;
        }
        .box{
            padding: 10px;
            border:1px solid #ccc;
            box-shadow: 0 0 6px #ccc;
            border-radius: 5px;
        }
        .box img{
            162px;
            height:auto;
        }
     </style>
    <body>
    <div id="main">
        <div class="pin">
            <div class="box">
                <img src="./images/1.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/2.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/3.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/4.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/5.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/6.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/7.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/8.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/9.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/10.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/11.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/12.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/13.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/14.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/15.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/16.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/17.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/18.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/19.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/20.jpg"/>
            </div>
        </div>
        <div class="pin">
            <div class="box">
                <img src="./images/21.jpg"/>
            </div>
        </div>
    </div>
    </body>
    <script type="text/javascript">

      $(window).on('load', function(){
        onLoad();
        $(window).on('scroll', function(){
          var data = {'data':[{'src':'images/1.jpg'},{'src':'images/2.jpg'},{'src':'images/3.jpg'},{'src':'images/4.jpg'}]};
          if(isOnLoad()){
            $.each(data.data, function(index, item){
              // var html = html + '<div class="pin"><div class="box"><img src="'+$(item).attr('src')+'" /></div></div>';
              // $('#main').html(html);
              var $oPin = $('<div>').addClass('pin').appendTo($("#main"));
              var $oBox = $('<div>').addClass('box').appendTo($oPin);
              $('<img>').attr('src', $(item).attr('src')).appendTo($oBox);
            });
            onLoad();
          }
        })
      })

      function onLoad(){
        var parentNode = $('#main'),
            nodeChilds = $('#main div.pin');
        var clientWidth = $(window).width();
        var nodeWidth = nodeChilds.eq(0).outerWidth();
        var num = Math.floor(clientWidth / nodeWidth);
        parentNode.css({
          'width': num*nodeWidth + 'px',
          'margin': '0 auto'
        });

        var childsArr = [];
        nodeChilds.each(function(index, item){
          var nodeHeight = nodeChilds.eq(index).outerHeight();
          if(index < num){
            childsArr[index] = nodeHeight;
          }else{
            var minH = Math.min.apply(null, childsArr);
            var minHIndex = $.inArray(minH, childsArr);
            $(item).css({
              'position': 'absolute',
              'top': minH,
              'left': nodeChilds.eq(minHIndex).position().left
            });
            childsArr[minHIndex] += nodeChilds.eq(index).outerHeight();
          }
        });
      }

      function isOnLoad(){
        var clientHeight = $(window).height();
        var nodeChilds = $('#main div.pin');
        var nodeChildTop = nodeChilds.last().get(0).offsetTop + Math.floor(nodeChilds.last().outerHeight() / 2);
        var scrollTop = $(window).scrollTop();
        return (nodeChildTop < clientHeight + scrollTop) ? true : false;
      }
    // window.onload = function(){
    //   onloadImg('main', 'pin');

    //   window.onscroll = function(){
    //     var data = {'data':[{'src':'images/1.jpg'},{'src':'images/2.jpg'},{'src':'images/3.jpg'},{'src':'images/4.jpg'}]};
    //     var mainId = document.getElementById('main');
    //     if(isLoadImg()){
    //       for(var i = 0, len = data.data.length; i < len; i++){
    //         var divHtml = '<div class="pin"><div class="box"><img src="'+data.data[i].src+'" /></div></div>';
    //         // var oPinDiv = document.createElement('div');
    //         // oPinDiv.className = 'pin';
    //         // mainId.appendChild(oPinDiv);
    //         // var oPinBoxDiv = document.createElement('div');
    //         // oPinBoxDiv.className = 'box';
    //         // oPinDiv.appendChild(oPinBoxDiv);
    //         // var oImg = document.createElement('img');
    //         // oImg.src = 'images/' + data.data[i].src;
    //         // oPinBoxDiv.appendChild(oImg);
    //         mainId.innerHTML += divHtml;
    //       }
    //       onloadImg('main', 'pin');
    //     }
    //   }
    // }

    // function onloadImg(parent, classBox){
    //   var documentWidth = document.documentElement.clientWidth || document.body.clientWidth;
    //   var oparent = document.getElementById(parent);
    //   var oPin = getClassName(oparent, classBox);
    //   var oPinWidth = oPin[0].offsetWidth;
    //   var num = Math.floor(documentWidth / oPinWidth);
    //   oparent.style.cssText = oPinWidth*num + 'px; margin:0 auto;';

    //   var oPinArr = [];
    //   for(var i = 0, len = oPin.length; i < len; i++){
    //     var oPinHeight = oPin[i].offsetHeight;
    //     if(i < num){
    //       oPinArr[i] = oPinHeight;
    //     }else{
    //       var minHeight = Math.min.apply(null, oPinArr);
    //       var minIndex = getMinHeightIndex(oPinArr, minHeight);
    //       oPin[i].style.position = 'absolute';
    //       oPin[i].style.top = minHeight + 'px';
    //       oPin[i].style.left = oPin[minIndex].offsetLeft + 'px';
    //       oPinArr[minIndex] += oPin[i].offsetHeight;
    //     }
    //   }

    // }

    // function getClassName(parent, className){
    //   var classNames = [];
    //   var nodes = parent.getElementsByTagName('*');
    //   for(var i = 0, len = nodes.length; i < len; i++){
    //     if(nodes[i].className == className ){
    //       classNames.push(nodes[i]);
    //     }
    //   }
    //   return classNames;
    // }

    // function getMinHeightIndex(arr, minH){
    //   for(var i in arr){
    //     if(arr[i] == minH){
    //       return i;
    //     }
    //   }
    // }

    // function isLoadImg(){
    //   var mainId = document.getElementById('main');
    //   var clientHeight = document.documentElement.clientHeight || document.body.clientHeight;
    //   var oPin = getClassName(mainId,'pin');
    //   var oLast = oPin[oPin.length - 1];
    //   var oLastHeight = oLast.offsetTop + Math.floor(oLast.offsetHeight / 2);
    //   var scroTop = document.documentElement.scrollTop || document.body.scrollTop;
    //   return (oLastHeight < scroTop + clientHeight) ? true : false;
    // }

    </script>
    </html>


  • 相关阅读:
    C# 手机号码隐藏中间四位
    mysql-8.0.20-winx64 绿色版安装教程
    C# 钩子函数使用
    C#反射机制学习
    docker学习笔记二
    从主机A得到id_rsa.pub文件,在主机B创建用户danny加入该文件,实现主机A免密登录主机B
    关于mysql远程登录问题
    playframework 编译打包过程失败
    docker学习笔记一
    记一次tomcat7.0版本启动项目失败问题
  • 原文地址:https://www.cnblogs.com/sunhw360/p/4139783.html
Copyright © 2011-2022 走看看