• 瀑布流之ajax


    wf_js.html(展示页)

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style type="text/css">
                * {
                    margin: 0;
                    padding: 0;
                }
                html,body {
                    width: 100%;
                    height: 100%;
                    background: #f3f2f3;
                }
                #main {
                    border: 1px solid red;
                    width: 1225px;
                    margin: 0 auto;
                }
                .column {
                    width: 245px;
                    float: left;
                }
            </style>
        </head>
    
        <body>
            <button id="btn">加载图片</button>
            <div id="main">
                <div class="column"></div>
                <div class="column"></div>
                <div class="column"></div>
                <div class="column"></div>
                <div class="column"></div>
            </div>
        </body>
    </html>
    <script src="ajax.js"></script>
    <script type="text/javascript">
        //点击按钮  首先加载数据到不同的列上
        var cols = document.getElementsByClassName("column");
        btn.onclick = function(){
            ajax( "pbl.json" , function(msg){
                var arr = JSON.parse( msg );
                for( var i = 0 ; i < arr.length ; i++ ){
                    var pro = arr[i];
                    var oimg = document.createElement("img");
                    oimg.src = pro.src;
                    //设置图片的宽度和高度
                    oimg.width = "245";
                    oimg.height = pro.height;
                    //获取最小高度列的索引
                    var index = getMinHeightIndex();
                    cols[index].appendChild( oimg );
                }
            } )
        }
        
        ///定义一个函数 功能是获取最小高度列的下标
        function getMinHeightIndex(){
            //假设五列中第一列的高度是最小的
            var minHeight = cols[0].offsetHeight;
            var index = 0;//第一列的下标
            for( var i = 0 ; i < cols.length ; i++ ){
                if( minHeight > cols[i].offsetHeight ){
                    minHeight = cols[i].offsetHeight;
                    index = i;
                }
            }
            return index;
        }
        
        window.onscroll = function(){
            var sTop = document.documentElement.scrollTop || document.body.scrollTop;
            //当最小高度列高 < 可视窗口高度+页面滚走的距离 时  开始加载数据
            var winHeight = window.innerHeight;
            var minHeight = cols[getMinHeightIndex()].offsetHeight;
            if( minHeight < winHeight + sTop ){
                btn.onclick();//持续加载图片
            }
        }
    </script>

    ajax.js

    function ajax(url,fnWin,fnFaild){
        var ajax = null;
        if (window.XMLHttpRequest) {
            ajax = new XMLHttpRequest();
        }else{
            ajax = new ActiveXObject("Microsoft.XMLHTTP");
        }
        ajax.open("get",url,true);    
        ajax.send();
        ajax.onreadystatechange = function (){
            if (ajax.readyState==4) {
                if(ajax.status == 200){
                    if (fnWin) { //判断该函数是否存在,如果存在,就调用  返回结果
                        fnWin(ajax.responseText); 
                    }            
                }else{
                    if (fnFaild){
                        fnFaild();
                    }    
                }
            }
        }
    }

    pbl.json

    [
    {"src":"img/1.jpg","alt":"1","height":"343"},
    {"src":"img/2.jpg","alt":"2","height":"300"},
    {"src":"img/3.jpg","alt":"3","height":"230"},
    {"src":"img/4.jpg","alt":"4","height":"230"},
    {"src":"img/5.jpg","alt":"5","height":"306"},
    {"src":"img/6.jpg","alt":"6","height":"333"},
    {"src":"img/7.jpg","alt":"7","height":"335"},
    {"src":"img/8.jpg","alt":"8","height":"172"},
    {"src":"img/9.jpg","alt":"9","height":"172"},
    {"src":"img/10.jpg","alt":"10","height":"345"},
    {"src":"img/11.jpg","alt":"11","height":"340"},
    {"src":"img/12.jpg","alt":"12","height":"153"},
    {"src":"img/13.jpg","alt":"13","height":"345"},
    {"src":"img/14.jpg","alt":"14","height":"316"},
    {"src":"img/15.jpg","alt":"15","height":"327"},
    {"src":"img/16.jpg","alt":"16","height":"345"},
    {"src":"img/17.jpg","alt":"17","height":"172"},
    {"src":"img/18.jpg","alt":"18","height":"282"},
    {"src":"img/19.jpg","alt":"19","height":"224"},
    {"src":"img/11.jpg","alt":"11","height":"340"},
    {"src":"img/12.jpg","alt":"12","height":"153"},
    {"src":"img/13.jpg","alt":"13","height":"345"},
    {"src":"img/14.jpg","alt":"14","height":"316"},
    {"src":"img/15.jpg","alt":"15","height":"327"},
    {"src":"img/16.jpg","alt":"16","height":"345"},
    {"src":"img/17.jpg","alt":"17","height":"172"},
    {"src":"img/18.jpg","alt":"18","height":"282"},
    {"src":"img/19.jpg","alt":"19","height":"224"},
    {"src":"img/20.jpg","alt":"20","height":"344"}
    ]
  • 相关阅读:
    NameNode热迁移方案
    HDFS QJM的架构设计
    HDFS QJM的架构设计
    HDFS QJM机制分析
    HDFS QJM机制分析
    HDFS inotify:Linux inotify机制在HDFS中的实现
    HDFS inotify:Linux inotify机制在HDFS中的实现
    Confluence 6 数据库整合的方法 1:基本流程
    Confluence 6 数据库整合的限制
    Confluence 6 整合到其他数据库
  • 原文地址:https://www.cnblogs.com/Leslie-Cheung1584304774/p/10529484.html
Copyright © 2020-2023  润新知