左边一个类型对应右边10条数据
左边如果有10条
那么右边一共有100条
请问 右边是一下子请求回来的吗
还是一次10条
如果是一次10条 跳着点左边 右边是怎么计算滚动的
没用过饿了,结合其它应用的类似功能说一下好了。
这个不是简单的程序问题,有营销在里面。
首先,认为第一个分类是重点、热点、促销,并假设其内容足以引起用户关注。那么基于该场景数据首次加载就是左侧列表和第一个分类下全部数据(这也是基于场景的,理论上并不会有太多)。
然后,其它分类的数据则进入低优先加载队列,如果上面的假设成立,大部分情况下所有队列都能完成加载,后续体验流畅。如果上面假设失败,用户点击的分类的详情数据读取优先读取。
然后,右边是虚拟滚动,即便右侧列表有1000个商品,实际上只有当前浏览页面前后的有限dom被渲染。所以并没有你想的那么神奇,当前浏览的商品序号/商品数 = 滚动百分比。
找个信号不好的地方试试就知道了,由于网速问题整个过程基本透明的。
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
左侧的分类栏是通过获取给每个分类提前设置好的ID值,进行样式的切换。点左侧跟右侧进行联动,就需要给右边的每个盒子一个ID,让左边的ID和右边ID还有左边的点击获取当前值都相等,就可以实现左侧的联动。
右侧的联动就需要获取到每个盒子的头部距离顶部的距离,然后把他们放到一个数组里,在右侧的事件中去遍历数组,同时获取我们滚动的距离跟数组中的盒子之间的值做判断,判断我们滚动了第几个盒子的范围内,然后就把相应的数组赋给左边。