4-4老师帮忙看下 我是跟着视频做练习 为什么最后新加的盒子会有叠加情况
<!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="style.css"> <title>瀑布流实例</title> </head> <body> <div id="wrap"> <div> <img src="image/1.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/2.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/3.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/4.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/5.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/6.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/7.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/8.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/9.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/10.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/11.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/12.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/13.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/14.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/15.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/16.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/17.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/18.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/19.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/20.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/21.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/22.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/23.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/24.png"/> <a href="#">这是一段链接文字</a> </div> <div> <img src="image/25.png"/> <a href="#">这是一段链接文字</a> </div> </div> <script type="text/javascript" src="jquery-3.3.1.js"></script> <script type="text/javascript" src="script.js"></script> </body> </html>
*{ margin: 0; padding: 0; border: none; } body{ background: #ddd; } img { border: none; } a{ text-decoration: none; color: #444; } a:hover{ color: #999; } #wrap{ position: relative; width: auto; height: auto; margin: 0 auto; } #wrap > div{ float: left; width: 280px; height: auto; margin: 10px; box-sizing: border-box; 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; }
var data = [{ "src":"26.png" },{ "src":"27.png" },{ "src":"28.png" },{ "src":"29.png" },{ "src":"30.png" },{ "src":"31.png" },{ "src":"32.png" },{ "src":"33.png" },{ "src":"34.png" },{ "src":"35.png" },{ "src":"36.png" },{ "src":"37.png" },{ "src":"38.png" },{ "src":"39.png" },{ "src":"40.png" },{ "src":"41.png" },{ "src":"42.png" },{ "src":"43.png"a },{ "src":"44.png" },{ "src":"45.png" },{ "src":"46.png" }] function waterfall(wrap,boxes){ var boxWidth = boxes.eq(0).width() + 40; var windowWidth = $(window).width(); var colsNumber = Math.floor(windowWidth/boxWidth); wrap.width(boxWidth * colsNumber); var everyHight = new Array(); for(var i = 0; i<boxes.length; i++){ if (i<colsNumber) { everyHight[i] = boxes.eq(i).height() + 40; }else{ var minHeight = Math.min.apply(null,everyHight); var minIndex = getIndex(minHeight,everyHight); setStyle(boxes.eq(i),minHeight,boxes.eq(minIndex).position().left,i); everyHight[minIndex] += boxes.eq(i).height()+40; }; } } function getIndex(minHeight, everyHight){ for (index in everyHight) { if (everyHight[index] == minHeight) { return index; }; }; }; var getStartNumber = 0; var setStyle = function(box,top,left,index){ if (getStartNumber >= index){ return false; }; box.css({ 'position':'absolute', 'top': top, 'left':left, 'opacity':'0' }).stop().animate({ 'opacity':'1' },1000); getStartNumber = index; }; var appendBox = function(wrap){ for(i in data){ var innerString = '<div><img src="image/' + data[i].src + '"/><a href="#">这是一段链接文字</a><div>'; wrap.append(innerString); }; waterfall(wrap,wrap.children('div')); }; $(document).ready(function(event){ var wrap = $('#wrap'); var boxes = $('#wrap').children('div'); waterfall(wrap,boxes); $(this).scroll(function(event){ appendBox(wrap); }); });
新加的盒子会出现如图的叠加现象,检查了很多遍没看出原因
23
收起
正在回答 回答被采纳积分+1
2回答
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星