• 瀑布流事件


    1.用到的技术 js,jquery,underscore,ajax,数据采用json传递

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            * {
                margin:0;
                padding:0;
            }
            body {
                background-color:#ccc;
            }
    
            #waterfull {
                width:800px;
                position:relative;
                margin:10px auto;
            }
    
            .grid {
                width:240px;
                padding:10px;
                position:absolute;
                border-radius:15px;
                background-color:#fff; 
            }
    
             .grid img {
                 width:240px;
                 display:block;  
             }
             .loading {
                width:100%;
                line-height:30px;
                font-size:18px;
                text-align:center;
                color:#fff;
             }
    
        </style>
        <script type="text/template" id="template">
            <div class="grid">
                <img src="<%=imgurl%>" alt="">
                <p><%=content%></p>
                <p><%=author%></p>
            </div>
        </script>
    </head>
    <body>
        <div id="waterfull">
         <!--    <div class="grid">
             <img src="images/0.png" alt="">
             <p>图片详情图片详情</p>
         </div> -->
        </div>
        <div class="loading">
            图片正在加载......
        </div>
        <script src="../jquery-1.12.4.js"></script>
        <script src="../underscore.js"></script>
        <script>
            //获取模板函数
            var compile = _.template($("#template").html());     
            var cols = [0,0,0]; 
            //ajax获取数据
            var page = 1;
            jsonDataRender(page);
            function jsonDataRender(page){
                $.get("json/json"+page+".txt",function(data){
                //data转化为json对象
                var dataJson = JSON.parse(data);
                if(dataJson.news.length == 0){
                    console.log("没有数据了......");
                    $(".loading").show().html("数据已经加载完了......");
                    console.log("1");
                    return;
                }
                //$waterfull = $("#waterfull");
                _.each(dataJson.news,function(dictionary){
                    var image = new Image(); //图片预加载
                    image.src = dictionary.imgurl;
                    $(image).load(function(){
                        var domStr = compile(dictionary);
                        var $grid = $(domStr);/*不知道这里为什么必须要接受一下*/
                        $("#waterfull").append($grid);
                        var minHeight = _.min(cols);
                        var minIndex = _.indexOf(cols,minHeight);
                        $grid.css({
                            "left":minIndex*270,
                            "top":minHeight
                        });
                        cols[minIndex] += $grid.outerHeight()+20;
                        // 给最大的盒子设置高度
                        $("#waterfull").css("height",_.max(cols)); //设置数据加载完毕时显示提示
                        lock = true;
                        $(".loading").hide();
                        console.log("2");
                    }); 
                });
    
                });
    
            }
    
            var lock = true;
            $(window).scroll(function(){
                if(!lock) return; 
                //拉到低的时候窗口向上滚动的距离 $(window).scrollTop()+$(window).height() == $(document).height();
                var rate = $(window).scrollTop()/($(document).height()-$(window).height());
                if(rate >= 0.8){
                    page++;
                    jsonDataRender(page);
                    lock = false;
                }
            });
            
        </script>
    </body>
    </html>
    {
        "news" : [
            {    
                "imgurl" : "images/0.png" ,
                "title" : "标题标题标题标题标题标题0",
                "content" : "内容内容内容内容内容内容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/1.png" ,
                "title" : "标题标题标题标题标题标题1",
                "content" : "内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/2.png" ,
                "title" : "标题标题标题标题标题标题2",
                "content" : "内容内容内容内容内容容内容内容内容内容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/3.png" ,
                "title" : "标题标题标题标题标题标题3",
                "content" : "内容内容内容内内容内容内容内内容内容内容内内容内容内容内容内容内容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/4.png" ,
                "title" : "标题标题标题标题标题标题4",
                "content" : "内容内容内内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/5.png" ,
                "title" : "标题标题标题标题标题标题5",
                "content" : "内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/6.png" ,
                "title" : "标题标题标题标题标题标题6",
                "content" : "内容内容内容内容内容容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/7.png" ,
                "title" : "标题标题标题标题标题标题7",
                "content" : "内容内容内容内内容内内容内容内容内容内容内容内容内容内容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/8.png" ,
                "title" : "标题标题标题标题标题标题8",
                "content" : "内容内容内容内容容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/9.png" ,
                "title" : "标题标题标题标题标题标题9",
                "content" : "内容内容内容内容内容内容内容内容内容内内容内容内容内容内容容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/10.png" ,
                "title" : "标题标题标题标题标题标题10",
                "content" : "内容内容内容内",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/11.png" ,
                "title" : "标题标题标题标题标题标题11",
                "content" : "内容内容内容内容内容内容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/12.png" ,
                "title" : "标题标题标题标题标题标题12",
                "content" : "内容内容内容内容内容内容内容内容内容内容内内容内容内容内容内容容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/13.png" ,
                "title" : "标题标题标题标题标题标题13",
                "content" : "内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/14.png" ,
                "title" : "标题标题标题标题标题标题14",
                "content" : "内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/15.png" ,
                "title" : "标题标题标题标题标题标题15",
                "content" : "内容内容内容内容内容内内容内容内容内容内容内容内容内容内容内容容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/16.png" ,
                "title" : "标题标题标题标题标题标题16",
                "content" : "内容内容内容内容内容内内容内容内容内容内容内容内容内容内容内容容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/17.png" ,
                "title" : "标题标题标题标题标题标题17",
                "content" : "内容内容内容内容内容内内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/18.png" ,
                "title" : "标题标题标题标题标题标题18",
                "content" : "内容内容内容内容内容内内容内容内容内容内容内容内容内容内容内容容内容内容内容内容内容",
                "author" : "作者"
            },
            {    
                "imgurl" : "images/19.png" ,
                "title" : "标题标题标题标题标题标题19",
                "content" : "内容内容内容内容内容内内容内容内容内容内容内容内容内容内容内容容内容内容内容内容内容",
                "author" : "作者"
            }
        ]
    }
  • 相关阅读:
    搭建自己的博客(三十一):为评论以及回复添加邮箱提醒
    gl-transitions 【68个转场效果图】
    frei0r-1.7.0 20191207-0d4b342 DLLs
    Win10资源管理器始终使用详细视图模式
    gcc posix sjij for MSYS 9.2.1+
    mingw32-gcc-9.2.1-i686-posix-sjlj-20190904-8ba5c53
    Newtonsoft.Json高级用法
    在线文档预览方案-office web apps
    我的前端学习历程
    我是怎么使用最短路径算法解决动态联动问题的
  • 原文地址:https://www.cnblogs.com/moon-yyl/p/10003886.html
Copyright © 2020-2023  润新知