3-3视频中瀑布流的问题

3-3视频中瀑布流的问题

图片中画红线的部分boxes.length的长度随着滚动条的下拉会一直发生变化吗?

图片中还有画蓝色的部分视频听得http://img1.sycdn.imooc.com//climg/5bcbecd60001b31d11870918.jpg不是很明白,老师能在详细的介绍一下吗 

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

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

1回答
好帮手慕夭夭 2018-10-22 10:23:54

你好同学 ,问题解答如下:

1. boxes.length不会变化的 , 因为boxes获取页面加载时最初的18个盒子 ,如下代码:

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

2.瀑布流图片的位置是根据上一行图片最小宽度决定的 , 例如第一行高度最小的图片是第六张图片 ,所以第二行的第一张也就是第七张图片定位在它下面 . 

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

所以如下代码中 , 并获取每行图片的高度传递给如下函数getIndex , 然后找到最小图片的索引

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

3. 如下代码中就是js为图片设置定位 , top值和left值的语法 ,

 everyHeight[minIndex] += boxes[i].offsetHeight + 20; 是给每个盒子设置高度height . 

当如上第二条找到最小高度的图片索引后 ,那么根据索引设置下一行第一张要在它下面 ,然后下一次for循环( 同学可以看到代码是写在for循环中的 )  , 就会再剩下的图片中再找到最小高度的索引值 , 再让下一行的第二张图片定位到下面 .,依次循环直到排列完毕 ....

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

这一块不好理解 , 建议同学在看着视频 ,自己敲一下代码 , 能够帮助自己更好的理解哦.

祝学习愉快 ,望采纳



  • 提问者 夕落呀 #1
    boxes[i].style.position = 'absolute'; boxes[i].style.top = minHeight + 'px'; 这里设置绝对定位,设置top值,这里绝对的定位是对第二行进行的吗
    2018-10-23 09:49:39
  • 好帮手慕夭夭 回复 提问者 夕落呀 #2
    并不是单单只有第二行 , 除了第一行之外的其他盒子都会定位的 .老师第二条解释 只是拿第二行举个例子哦 . 建议同学不光要看视频 ,还要自己练习一下代码 . 在实战中能够帮助自己更好的理解与掌握哦 . 加油 !
    2018-10-23 09:59:11
  • 提问者 夕落呀 回复 好帮手慕夭夭 #3
    忘记这里是当i>=colsNumber时对盒子进行定位,之前一直疑惑要不要对第一行进行定位设置top值
    2018-10-23 10:13:37
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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