• 瀑布流的实现


    1,页面初始化时,调用插件进行一次排版;
    2,当用户将滚动条拖到底部时,用ajax加载一次数据,并排版显示
    3,重复2,直到无数据

    html代码 :

      1     <!DOCTYPE HTML>
      2     <html>
      3     <head>
      4     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      5     <title>Insert title here</title>
      6     <!--样式-->
      7     <style type="text/css">
      8     body {margin:40px auto; width:800px; font-size:12px; color:#666;}
      9     .item{
     10         border: 1px solid #D4D4D4;
     11         color: red;
     12         margin: 0 10px 10px 0;
     13         padding: 10px;
     14         position: relative;
     15         width: 200px;
     16     }
     17     .loading-wrap{
     18         bottom: 50px;
     19         width: 100%;
     20         height: 52px;
     21         text-align: center;
     22         display: none;
     23     }
     24     .loading {
     25         padding: 10px 10px 10px 52px;
     26         height: 32px;
     27         line-height: 28px;
     28         color: #FFF;
     29         font-size: 20px;
     30         border-radius: 5px;
     31         background: 10px center rgba(0,0,0,.7);
     32     }
     33     .footer{
     34         border: 2px solid #D4D4D4;
     35     }
     36     </style>
     37     <!--样式-->
     38     </head>
     39     <body>
     40     <!--引入所需要的jquery和插件-->
     41     <script type="text/javascript" src="/test/public/Js/jquery-1.7.2.min.js"></script>
     42     <script type="text/javascript" src="/test/public/Js/jquery.masonry.min.js"></script>
     43     <!--引入所需要的jquery和插件-->
     44     <!--瀑布流-->
     45     <div id="container" class=" container">
     46     <!--这里通过设置每个div不同的高度,来凸显布局的效果-->
     47     <volist name="height" id="vo">
     48         <div class="item" style="height:{$vo}px;">瀑布流下来了</div>
     49     </volist>
     50     </div>
     51     <!--瀑布流-->
     52     <!--加载中-->
     53     <div id="loading" class="loading-wrap">
     54         <span class="loading">加载中,请稍后...</span>
     55     </div>
     56     <!--加载中-->
     57     <!--尾部-->
     58     <div class="footer"><center>我是页脚</center></div>
     59     <!--尾部-->
     60     <script type="text/javascript">
     61     $(function(){
     62         //页面初始化时执行瀑布流
     63         var $container = $('#container');
     64          $container.masonry({
     65             itemSelector : '.item',
     66             isAnimated: true
     67          });
     68          //用户拖动滚动条,达到底部时ajax加载一次数据
     69         var loading = $("#loading").data("on", false);//通过给loading这个div增加属性on,来判断执行一次ajax请求
     70         $(window).scroll(function(){
     71             if(loading.data("on")) return;
     72             if($(document).scrollTop() > $(document).height()-$(window).height()-$('.footer').height()){//页面拖到底部了
     73                 //加载更多数据
     74                 loading.data("on", true).fadeIn();         //在这里将on设为true来阻止继续的ajax请求
     75                 $.get(
     76                     "{:U('Index/getMore')}", 
     77                     function(data){
     78                        //获取到了数据data,后面用JS将数据新增到页面上
     79                         var html = "";
     80                         if($.isArray(data)){
     81                             for(i in data){
     82                                 html += "<div class="item" style="height:"+data[i]+"px;">瀑布又流下来了</div>";
     83                             }
     84                             var $newElems = $(html).css({ opacity: 0 }).appendTo($container);
     85                             $newElems.imagesLoaded(function(){
     86                                 $newElems.animate({ opacity: 1 });
     87                                 $container.masonry( 'appended', $newElems, true ); 
     88                                   });
     89                           //一次请求完成,将on设为false,可以进行下一次的请求
     90                             loading.data("on", false);
     91                         }
     92                         loading.fadeOut();
     93                     },
     94                     "json"
     95                 );
     96             }
     97         });
     98     });
     99     </script>
    100     </body>
    101     </html>
    View Code
  • 相关阅读:
    spring基础
    hibernate基础
    struts2基础
    javaEE(17)_邮件原理与JavaMail开发
    javase(14)_java基础增强
    javase(13)_网络编程
    javase(12)_集合框架_Queue
    C++:memset ,memcpy 和strcpy 的根本区别!
    16位的二进制数,每4位为一个数,写函数求他们的和
    态度!!!
  • 原文地址:https://www.cnblogs.com/zxiong/p/4186752.html
Copyright © 2020-2023  润新知