最近接到一个新的需求要求仿照美团实现一个分类页面,主要是有这么几个要求:
1. 左右滑动联动;
2. 标题吸顶;
3. 左边选中能居住显示(在标题多的情况下);
4. 选中标题之后,后边能将对应内容显示在可视区域内;
- 左右滑动联动
要做到左右滑动联动,首先就要做到我当前滑动的块是属于哪一个标题下的,所以这时候就需要计算每个标题下,对应内容的区域能有多高,以及他们在列表中的位置是多少;然后我们根据scrollTop计算当前滑动到哪一个标题的区域,然后把当前这个标题所在的index 回调出去,告诉左边,需要将第几个标题设置为高亮,就可以,这个就能做到左右两边联动的效果了;
onScroll = (e) => {
let indexTemp = this.sectionIndex;
const {
sectionPosition, leftData} = this.state;
// 遍历每个section的高度,若是scrollTop 在某一个section的区间,就将对应的section 设置为高亮
for (let i = 0; i < sectionPosition.length; i ++) {
const lp = sectionPosition