控制台报错了

控制台报错了

function waterfall(wrap,boxes){

// 获取屏幕可以显示的列数

var boxWidth=boxes[0].offsetWidth+20;

var windowWidth=document.documentElement.clientWidth;

var colsNumber=Math.floor(windowWidth/boxWidth);


// 设置容器的宽度

wrap.style.width=boxWidth*colsNumber+'px';


// 定义一个数组并存储每一列的高度

var everyHeight=new Array();

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

if(i<colsNumber){

everyHeight[i]=boxes[i].offsetHeight+20;

}else{

var minHeight=Math.min.apply(null,everyHeight);

var minIndex=getIndex(minHeight,everyHeight);

var leftValue=boxes[minHeight].offsetLeft-10;

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

boxes[i].style.top=minHeight+'px';

boxes[i].style.left=leftValue+'px';

everyHeight[minIndex]+=boxes[i].offsetHeight+20;

};

};

};


// 获取最小列的索引

function getIndex(minHeight,everyHeight){

for(index in everyHeight){

if(everyHeight[index]==minHeight){

return index;

}

}

}


window.onload=function(){

var wrap=document.getElementById('wrap');

var boxes=wrap.getElementsByTagName('div');

waterfall(wrap,boxes);

};

请老师帮忙看一下

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
正在想名字呢 2018-03-21 18:14:03

 你报的错是“ Cannot read property 'offsetLeft' of undefined” 意思是js代码这一行 var leftValue=boxes[minHeight].offsetLeft-10;中,boxes[minHeight]是undefined的。

你可以分别输出一下boxes的长度和minHeight的值, minHeight的值为:192  boxes的长度是18。所以你boxes[minHeight]这么写的话,应该是找不到对应的项的。 

  • 提问者 桃月的阿宅 #1
    js的好了 jQuery的又报错了。。。 var waterfall=function(wrap,boxes){ // 获取屏幕可以显示的列数 var boxWidth=boxes.eq(0).width()+40; var windowWidth=$(window).width(); var colsNumber=Math.floor(windowWidth/boxWidth); // 设置容器的宽度 wrap.width(boxWidth*colsNumber); // 定义一个数组并存储每一列的高度 var everyHeight=new Array(); for(var i=0;i<boxes.length;i++){ if(i<colsNumber){ everyHeight[i]=boxes.eq(i).height()+40; }else{ var minHeight=Math.min,apply(null,everyHeight); var minIndex=getIndex(minHeight,everyHeight); boxes.eq(i).css({ 'position':'absolute', 'top':minHeight, 'left':boxes.eq(minIndex).position().left, 'opacity':'0' }).stop().animate({ 'opacity':'1' },1000); everyHeight[minIndex]+=boxes.eq(i).height()+40; }; } }; // 获取最小列的索引 function getIndex(minHeight,everyHeight){ for(index in everyHeight){ if(everyHeight[index]==minHeight){ return index; }; }; }; $(document).ready(function(event){ var wrap=$('#wrap'); var boxes=$('#wrap').children('div'); waterfall(wrap,boxes); }); 能帮我看看怎么回事嘛 谢谢
    2018-03-21 19:27:41
提问者 桃月的阿宅 2018-03-21 16:24:48

/* All Tag */

*{

padding: 0;

margin: 0;

border: none;

}

body{

background: #ddd;

}

img{

border: none;

}

a{

text-decoration: none;

color: #444;

}

a:hover{

color: #999;

}

/* Wrap */

#wrap{

position: relative;

width: auto;

height: auto;

margin: 0 auto;

}

#wrap div{

float: left;

box-sizing: border-box;

width: 280px;

height: auto;

margin: 10px;

padding: 10px;

border-radius: 5px;

background: #fff;

}

#wrap div img{

width: 100%;

}

#wrap div a{

display: block;

font-size: 18px;

font-weight: bold;

line-height: 40px;

text-align: center;

}


提问者 桃月的阿宅 2018-03-21 16:24:23

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>瀑布流-云南十八怪</title>

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

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

</head>

<body>

<div id="wrap">

    <div>

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

        <a href="http://www.imooc.com" target="_blank">第一怪 竹筒当烟袋</a>

    </div>

    <div>

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

        <a href="http://www.imooc.com" target="_blank">第二怪 草帽当锅盖</a>

    </div>

    <div>

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

        <a href="http://www.imooc.com" target="_blank">第三怪 这边下雨那边晒</a>

    </div>

    <div>

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

        <a href="http://www.imooc.com" target="_blank">第四怪 四季服装同穿戴</a>

    </div>

    <div>

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

        <a href="http://www.imooc.com" target="_blank">第五怪 火车没有汽车快</a>

    </div>

    <div>

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

        <a href="http://www.imooc.com" target="_blank">第六怪 火车不通国内通国外</a>

    </div>

    <div>

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

        <a href="http://www.imooc.com" target="_blank">第七怪 老奶爬山比猴快</a>

    </div>

    <div>

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

        <a href="http://www.imooc.com" target="_blank">第八怪 鞋子后面多一块</a>

    </div>

    <div>

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

        <a href="http://www.imooc.com" target="_blank">第九怪 脚趾四季露在外</a>

    </div>

    <div>

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

        <a href="http://www.imooc.com" target="_blank">第十怪 鸡蛋拴着卖</a>

    </div>

    <div>

        <img src="images/11.png">

        <a href="http://www.imooc.com" target="_blank">第十一怪 粑粑叫饵块</a>

    </div>

    <div>

        <img src="images/12.png">

        <a href="http://www.imooc.com" target="_blank">第十二怪 花生蚕豆数着卖</a>

    </div>

    <div>

        <img src="images/13.png">

        <a href="http://www.imooc.com" target="_blank">第十三怪 三个蚊子一盘菜</a>

    </div>

    <div>

        <img src="images/14.png">

        <a href="http://www.imooc.com" target="_blank">第十四怪 四个老鼠一麻袋</a>

    </div>

    <div>

        <img src="images/15.png">

        <a href="http://www.imooc.com" target="_blank">第十五怪 树上松毛扭着卖</a>

    </div>

    <div>

        <img src="images/16.png">

        <a href="http://www.imooc.com" target="_blank">第十六怪 姑娘叫老太</a>

    </div>

    <div>

        <img src="images/17.png">

        <a href="http://www.imooc.com" target="_blank">第十七怪 小和尚可以谈恋爱</a>

    </div>

    <div>

        <img src="images/18.png">

        <a href="http://www.imooc.com" target="_blank">第十八怪 背着娃娃谈恋爱</a>

    </div>

</div>

</body>

</html>


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师