getstartnumber这个变量是代表哪些盒子

getstartnumber这个变量是代表哪些盒子

如题,index接收的i嘛,所以代表容器里的所有盒子,初始为0,getstartnumber这个变量指的是触发滚动追加的盒子?那它不应该一直小于index么??

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

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

2回答
好帮手慕星星 2019-07-04 19:51:09

在页面初始化的时候调用了waterfall方法:

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

从第二排开始就会调用setStyle方法设置样式(假如一排有6个),getStartNumber初始值为0 ,从第七个盒子开始,每一个盒子设置完样式之后,getStartNumber的值就会赋值为当前盒子的索引index:

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

所以当第18个盒子设置完样式之后,getStartNumber的值就是当前索引17 。

当页面滚动的时候,调用appendBox方法追加盒子,然后调用waterfall方法,传入的参数是当前所有的盒子,所以从7个盒子开始仍然会执行setStyle方法方法设置样式,为了设置新追加盒子的样式,所以进行了getStartNumber值的判断,i的值从的第七个盒子(索引为6)开始,getStartNumber的值为17,6-17之间的盒子样式就不需要设置了,只设置大于17的即可。

自己再理解下。

好帮手慕星星 2019-07-04 18:10:12

你好,页面滚动调用追加盒子的appendBox方法,在这个方法中并不是只是传入了追加的盒子:

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

而是传入了所有的盒子,所以在调用setStyle方法时,传入的i值也是所有的盒子:

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

那么getStartNumber是一个全局变量,可以记录追加之前的index值:

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

如果当前的getStartNumber值大于从传入的i值,就不需要再设置样式了,也就是已经显示了的就不需要再重新设置了,只设置新追加的盒子就可以。

自己再测试理解下,祝学习愉快!

  • 提问者 浮沉幻听 #1
    老师,还是不懂啊,被这个getstartNumber困住好几天了 ,着急。。。这个i是index我知道,代表的是所有盒子,而且滚动触发追加的盒子也包含在里面,i>=colsNumer才会有下边的样式设置,但是就这个getstartNumber和index这个关系就是看不懂啊,index大于1 8才需要追加盒子,getstartNumber又是追加的盒子的索引初值为0,然后呢,,,
    2019-07-04 18:53:55
  • 提问者 浮沉幻听 #2
    写getsyle这个函数就是想让追加的盒子才有定位设置和动画效果,而不是除了第一行之后所有盒子都有动画效果,但是定位设置也在里面啊,初始的18个除了第一行的6个盒子,剩下的12也需要定位设置,但是这12个又不需要动画效果是么。这个函数里又包含了定位设置和动画设置,怎么区分给这初始的12个盒子和追加的盒子啊
    2019-07-04 18:59:42
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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