为了账号安全,请及时绑定邮箱和手机立即绑定
  • 提示:  1. 遍历所有数据块,将前五张图片的高度值添加到数组中
    
      2. 借助apply()方法求出数组中的最小值
    
      3. 编写一个求某个值在数组中索引的方法,求出最小值在数组中的索引
    
      4. 根据最小值和最小值的索引计算图片出现的位置
    
      5. 根据图片的高度值改变数组


    <!Doctype>

    <html>

     <head>

       <title>瀑布流布局</title>

       <meta charset="utf-8" />

       <link type="text/css" rel="stylesheet" href="css/style.css" />

       <script type="text/javascript" src="js/script.js"></script>

     </head>

     <body>

         <div id="main">

      <div class="box">

      <div class="pic">

      <img src="images/0.jpg" />

      </div>

      </div>

      <div class="box">

      <div class="pic">

      <img src="images/1.jpg" />

      </div>

      </div>

      <div class="box">

      <div class="pic">

      <img src="images/2.jpg" />

      </div>

      </div>

      <div class="box">

      <div class="pic">

      <img src="images/3.jpg" />

      </div>

      </div>

      <div class="box">

      <div class="pic">

      <img src="images/4.jpg" />

      </div>

      </div>

      <div class="box">

      <div class="pic">

      <img src="images/5.jpg" />

      </div>

      </div>

      <div class="box">

      <div class="pic">

      <img src="images/6.jpg" />

      </div>

      </div>

      <div class="box">

      <div class="pic">

      <img src="images/7.jpg" />

      </div>

      </div>

      <div class="box">

      <div class="pic">

      <img src="images/8.jpg" />

      </div>

      </div>

      <div class="box">

      <div class="pic">

      <img src="images/9.jpg" />

      </div>

      </div>

      <div class="box">

      <div class="pic">

      <img src="images/10.jpg" />

      </div>

      </div>

    </div>

     </body>

    </html>

    <script type=”text/javascript”>

     window.onload=function(){

         waterfall('main','box');

    }

    function waterfall(parent,box){

      var oParent=document.getElementById(parent);

      var oBoxs=getByClass(oParent,box);

    for(var i=0;i<oBoxs.length;i++){

        if(i<cols){

           // 将图片的高度值添加到数组中

           hArr.push(oBoxs[i].offsetHeight)

        }else{

          // 求最小值和最小值的索引

          var minH = math.min.apply(null,hArr);

          var index = getMinIndex(hArr,minH);


    // 计算及定义图片出现的位置

          oBoxs[i].style.position='absolute';

          oBoxs[i].style.top=minH+'px';

          oBoxs[i].style.left=oBoxs[index].offsetLeft+'px';

          

          // 改变数组值

         hArr[index] += oBoxs[i].offsetHeight;

        }

      }

    function getByClass(parent,clsName){

      var boxArr=new Array(), 

          oElements=parent.getElementsByTagName('*');

      for(var i=0;i<oElements.length;i++){

        if(oElements[i].className==clsName){

          boxArr.push(oElements[i]);

        }

      }

      return boxArr;

    }

    </script>


    // 求值在数组中的索引,arr接收的是数组,val接收的是判断的值

    function getMinhIndex(arr,val){

        for(var i in arr){

            if(arr[i]==val)

            return i

        }

    }


    查看全部
    0 采集 收起 来源:编程练习

    2018-05-19

  • 定义函数getByClass()实现获取document或指定父元素下所有class为on的元素。要求该函数可以接收一个参数也可以接收两个参数

      提示:
      1.第一个参数为必需的,第二个参数为可选的
      2.第一个参数为要获取的元素的类名,第二个参数如果传,则传父元素的id,不传则默认用document
      3.返回获取到的所有带有”on”这个类的DOM元素


    <!doctype html>

    <html>

    <head>

        <meta charset="UTF-8">

    <title>Document</title>

    </head>

    <body>

    <ul id="list">

    <li class="on">1</li>

    <li class="select">2</li>

    <li class="on">3</li>

    <li>4</li>

    </ul>

    <p class="on">class为on的p标签</p>

    </body>

    </html>

    <script type="text/javascript">

      window.onload=function(){

         var len1= getByClass('on','list');

         alert(len1.length);  // 结果等于2为正确

    var len2= getByClass('on');

         alert(len1.length);  // 结果等于3为正确

    }

    function getByClass(clsName, parent){

     //定义函数getByClass()实现获取document或指定父元素下所有class为on的元素  

     var oParent = parent?document.getElementById(parent):document;

     var boxArr = [],

     var oElement = parent.getElementsByTagName('*');

     for(var i=0;i<oElement.legth;i++){

         if(oElement[i].className == clsName){

             boxArr.push(oElement[i]);

         }

         return boxArr;

     }

    }

    </script>


    查看全部
    0 采集 收起 来源:编程练习

    2018-05-18

  • offsetWidth = 本身宽度 + 内层padding*2 + border*2 + 外层padding*2

    查看全部
  • 最后一个盒子的top值+其高度<document高度+滚动条滚动的值

    查看全部
  • 瀑布流:等宽不等高

    查看全部
  • js: 

    1、将main下所有class为box的元素取出来

    查看全部
  • $("<img>").attr("src","0.jpg");

    //attr用于获取属性,后接一个参数时为获取属性值,接两个参数时为设置属性值

    查看全部
  • $.inArray(min.attr);

    找到min在attr数组中的索引号

    查看全部
  • https://img1.sycdn.imooc.com//5ad2b1950001e7de03110073.jpg

    width():只获取定义的宽度

    outerWidth():  获取div的整个宽度,包括border,padding,margin

    查看全部
  • var hArr=[];
    for(var i=0;i<oBoxs.length;i++){
    if(i<cols){
        hArr.push(oBox[i].offsetHeight)


    查看全部
  • window.onload=function(){

                waterfall('main','box');

    }

    function waterfall(parent,box){


    }

    查看全部
  • window.onload=function()

    查看全部
  • Jquery 优点连缀

    查看全部
  • function getByClass(clsName, parent) { //定义函数getByClass()实现获取document或指定父元素下所有class为on的元素 var result = []; if (clsName) { parent = parent || document; var elements = parent.getElementsByTagName('*'); for (var i = 0; i < elements.length; i++) { if (elements[i].className === clsName) { result.push(elements[i]); } } } return result; }
    查看全部
    0 采集 收起 来源:编程练习

    2018-03-22

  • parent.document.getElementByTagName("*") //获取parent下的所以子元素标签
    查看全部

举报

0/150
提交
取消
课程须知
1.你一定对HTML+CSS比较熟悉; 2.掌握一定的JS基础知识,尤其是函数封装、调用等知识; 3.对jQuery相关知识掌握。
老师告诉你能学到什么?
1.学会实现瀑布流布局实现的三种方式; 2.div如何定位和排序; 3.掌握CSS3中多栏布局的知识。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!