3-5问题

3-5问题

html:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

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

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>

<!-- <script src="jQuery/script.js"></script> -->

<script src="jQuery/jquery.js"></script>

</head>

<body>

<div class="main" id="wrap">

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

<div class="box">

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

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

</div>

</div>

</body>

</html>

css:

*{padding: 0;margin: 0;}

body{background: #ddd;}

.main{width: auto;height: auto;margin: 0 auto;position: relative;}

.box{width: 280px;height: auto;background: #fff;float: left;margin: 10px;padding: 10px;box-sizing:border-box;

border-radius: 5px;}

.box img{width: 100%;}

.box a{text-decoration: none;color: #444;display: block;text-align: center;font-weight: bold;font-size: 18px;

line-height: 40px;}

jquery:

$(function(){

var wrap=$('#wrap');

var box=wrap.children('div');

// console.log(box);

waterFull(wrap,box);


//瀑布流的主函数

function waterFull(wrap,box){


//获取宽度,使整个盒子居中

var boxWidth=box.eq(0).width()+40;

var cols=Math.floor($(window).width()/boxWidth);

wrap.width(cols*boxWidth);

// console.log(cols);


//实现整个瀑布流的页面布局

var allHeight=new Array();

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

if (i<cols) {

allHeight[i]=box.eq(i).height()+40;

// console.log(allHeight);

}

else{

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

// console.log(minHeight);

var index=getIndex(minHeight,allHeight);

// console.log(index);

var left=box.eq(index).position().left;

box.eq(i).css({

'position':'absolute',

'left':left,

'top':minHeight,

'opacity':'0'

}).stop().animate({

'opacity':'1'

},1000);

allHeight[index]+=box.eq(i).height()+40;

}

}

function getIndex(minHeight,allHeight){

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

if (allHeight[i]===minHeight) {

return i;

}

}

}

}

})

为什么最后出来的结果是这样的?代码哪里有问题啊?有的时候页面布局又是正常的,有的时候又是乱七八糟的,这是为啥?

http://img1.sycdn.imooc.com/climg//59bde55800011bef12140668.jpg

正在回答

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

4回答

你好,你可以使用本地的jQuery文件测试下,是没有问题的哟,cdn地址会受网速的影响,jQuery文件没有加载出来,页面就会乱哟。

祝学习愉快~

  • NanAyo #1
    修改本地引入之后,还是一刷新就乱 是什么原因?
    2017-09-29 12:52:40
  • 你好,由于这里不能粘贴图片,你的问题,已经在你的原问题中解答了哟,可以去这里查看http://class.imooc.com/course/qadetail/16031 祝学习愉快~
    2017-09-29 13:51:41
  • 非常感谢!
    2017-10-04 13:25:09
NanAyo 2017-09-28 19:03:39

你好 我也是你这个问题 ,写好之后一打开网页就正确,但是一刷新,就叠在一起,我现在也不知道怎么回事 。问老师 ,老师也不直接回答,而且老师打开我的代码就是正确的 老师没点击刷新,就告诉我,我的代码在他那边看是正确的,也相当于没回答我的问题。你现在找到解决的方法了吗? 我也把cdn引入,修改成本地引入文件,还是一刷新就乱

怎么都被占用了呢 2017-09-18 15:16:55

建议你将jquery文件换成本地的引入。有的cdn地址会受网速的影响。

  • 可是我写JavaScript时就完全没有问题,是cdn的原因吗?我的代码有没有问题啊?不过我的网页有时候是正常的,有时候又在乱排版
    2017-09-19 10:34:49
qq_青空_4 2017-09-18 11:13:24

function getIndex(minHeight,allHeight){

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

if (allHeight[i]===minHeight) {

return i;

浏览了一下,没有测试。

感觉是这个地方有问题,里面的i和上面循环里的i不是同一个。

但你这样写,浏览器就懵逼。

  • 本来就不是一个i啊,这只是我用来循环随时定义的一个变量,换成j也是可以的啊,而且我在控制台打印index的输出结果时也是完全没有问题的,应该不是这里的i的问题吧
    2017-09-19 10:37:45
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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