zoukankan      html  css  js  c++  java
  • 一个简单的瀑布流效果

        闲着没事,自己写了个瀑布流,我个人写脚本或者是网页的习惯是:只参考别人的效果,很少参考别人的代码,有时侯我宁愿用审查元素来推断代码,也不愿去看源代码。我不知道这个习惯好不好。虽然中间过程是花了我不少时间,但是我做的东西的每一个细节我都还能记清楚(当然肯定后来会忘),因为是我实现的。下面说正题:
        瀑布流的主体即为 几个ul标签,新增加的元素以 li的形式按照当前 ul的高度有选择性的插入到某个ul下。
    主体形式如下:
     

    <div id="main">
      <ul class="pics">
        <li> <div class="pic"><img /></div> <div class="content">anytext..</div> </li>
        <li><div class="pic"><img /></div> <div class="content">anytext..</div> </li>
        ...
      </ul>
      <ul class="pics"> <li> <div class="pic"><img /></div> <div class="content">anytext..</div> </li>
        <li><div class="pic"><img /></div> <div class="content">anytext..</div> </li>
        ...
      </ul>
      ....
    </div>

     
    css定义如下:
    .pics {
         float:left;
         list-style:none;
         margin-left:10px;
         margin-right:10px;
         230px;
    }
    .pics li {
         display:block;
         100%;
         margin:0 auto;
         margin-bottom:10px;
         position:relative;
         background-color:#FFF;
         box-shadow: 0 1px 2px 0;
         padding-top:10px;
    }
    .pic {
         92%; margin:0 auto;
         padding-top:10px;
         text-align:center;
         font-size:180px;
         background-color:#0CF;
    }
    .pic img {
         100%;
         margin:0 auto;
    }
    .content {
         92%;
         margin:0 auto;
         padding-top:10px;
         height:50px;
         text-overflow:ellipsis;
         white-space:nowrap;
         overflow:hidden;
    }
     
    脚本实现如下:
     
    $(function(){
    //alert($(window).height()); 浏览器当前窗口可视区域高度 
    //alert($(document).height()); 
    //浏览器当前窗口文档的高度 alert($(document.body).height());
    //浏览器当前窗口文档body的高度 alert($(document.body).outerHeight(true));
    //浏览器当前窗口文档body的总高度 包括border padding margin alert($(window).width()); 
    //浏览器当前窗口可视区域宽度 alert($(document).width());
    //浏览器当前窗口文档对象宽度 alert($(document.body).width());
    //浏览器当前窗口文档body的高度 alert($(document.body).outerWidth(true));
    //浏览器当前窗口文档body的总宽度 包括border padding margin 
     
    $(document).scroll(function(){
    var pics=$(".pics");
    var sc=$(document).scrollTop();
    $("#float").text(sc);
    for(var i=0;i<pics.length;i++){   
    var pic=pics.eq(i);
    var bottom =pic.offset().top+pic.height();
    if((sc+$(window).height())>=bottom){
    eval( "var word=" +  '"\\u' + (Math.round(Math.random() * 20901) + 19968).toString(16)+'"');
    var li="<li> <div class='pic'>"+word+"</div><div class='content'>梦里过客笑眼望,望回廊,秋螽藏</div></li>";
          pic.append(li); 
    }
        }
    });
    });
       
        这样做基本实现了最简单的一个瀑布流,但是脚本中并没有考虑内存消耗,即无限加载的问题。现在我也没搞懂,以后再完善吧 。
    来看效果:
     
     
  • 相关阅读:
    $.each
    KBASP.NET 2.0 網站部署的變革
    详尽解析window.event对象
    Jquery1.2.6 源码分析
    索引学习2聚族索引、非聚族索引、组合索引
    在C#中使用WIA获取扫描仪数据
    Adobe Photoshop CS5简体中文版+完美破解方法
    j2me开发图片加载
    数据库操作
    WPF之DataGrid应用
  • 原文地址:https://www.cnblogs.com/kyyblabla/p/3100498.html
Copyright © 2011-2022 走看看