您好,能帮我看下代码哪里有问题吗,图片叠加了

您好,能帮我看下代码哪里有问题吗,图片叠加了

<!DOCTYPE html>

<html>


<head>

<meta charset="UTF-8">

<title></title>

<style>

* {

padding: 0;

margin: 0 auto;

outline: none;

border: 0;

}

body {

background: #CCCCCC;

}

big {

position: relative;

}

.big-sm {

width: 280px;

height: auto;

display: block;

float: left;

box-sizing: border-box;

border-radius: 5px;

background: white;

margin: 10px;

padding: 10px;

}

.big-sm img {

width: 100%;

height: auto;

}

</style>

</head>


<body>

<div id="big">

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>


<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

<a href="#" class="big-sm">

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

</a>

</div>

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

<script>

$(document).ready(function(event) {

var big = $('#big');

var a = big.children('.big-sm');


warp(big, a);


})

function warp(big, a) {

var aWidth = a.width() + 40;

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

var bigWidth = cols * aWidth;

big.width(bigWidth);

var everyHeight = new Array();

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

if(i < cols) {

everyHeight[i] = a.eq(i).height() + 40;

} else {

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

var minIndex = minindex(minHeight, everyHeight);

var leftValue = a.eq(minIndex).position().left;

a.eq(i).css({

'position': 'absolute',

'top': minHeight,

'left': leftValue

})

everyHeight[minIndex] += a.eq(i).height() + 40;

console.log(everyHeight);

console.log(a.eq(i).height())

}

}

}


function minindex(minHeight, everyHeight) {

for(index in everyHeight) {

if(everyHeight[index] == minHeight) {

return index;

}

}

}

//width()方法只能得到内容的宽度

</script>

</body>


</html>


正在回答

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

6回答

图片重叠的原因

原因一:jq库不一样会造成不一样的结果,这可能是图片叠加的原因

原因二:浏览器版本的问题,同学们可以尝试更换浏览器

原因三:window.onload和ready的区别,可以使用window.onload


sherryliu 2018-01-03 22:53:14

请问你的问题解决了吗?我也出现这种情况,三种版本的JQuery库最新版都试过,都出现重叠现象,有的刷新会正常,再次刷新就重叠

  • 提问者 是胡桃呀 #1
    window.onload可以的
    2018-01-04 16:20:48
小丸子爱吃菜 2017-11-29 09:46:16

jq库不一样会造成不一样的结果,这可能是图片叠加的原因;建议引入的JQ库是最新版本的。



提问者 是胡桃呀 2017-11-28 22:16:31

http://img1.sycdn.imooc.com//climg/5a1d6fa40001323f18670896.jpg

http://img1.sycdn.imooc.com//climg/5a1d6fa40001924b19111024.jpg

你好,我把我发在问题上的代码重新开了个html文件测试,还是会有重叠现象,如上。

一路电光带火花 2017-11-27 09:31:29

我测试你的代码也没有重叠的问题啊,每次刷新第二排图片的位置会有不同,会重新排列,所以第三排的图片会根据第二排图片的长度去排布。你看看老师的源码每次刷新也会这样。

小丸子爱吃菜 2017-11-15 09:38:19

http://img1.sycdn.imooc.com//climg/5a0b9a66000188f118871066.jpg

我这边运行你的代码没有你所说的叠加的效果,你可以再运行你的代码看一下!
祝学习愉快!

  • 提问者 是胡桃呀 #1
    您好,我重新运行还是有叠加,您刷新一下试试,我每次刷新后展示的效果都不一样。
    2017-11-26 15:54:05
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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