如何获取三列布局卡片列表中的所有中间项?
解决三列布局中获取中间列卡片的索引判断问题
嘿,我明白你的需求啦——在三列布局的卡片列表里,要精准定位每一行的中间卡片并设置背景色,你当前用的index % 2 === 1是判断奇数索引的逻辑,显然不适合三列的场景,咱们来修正一下:
核心索引判断公式
你要找的中间列卡片,它们的索引满足 index % 3 === 1 这个条件。
验证一下你的示例索引
拿你给出的索引序列0-8来测试:
- 0 % 3 = 0 → 第一列卡片
- 1 % 3 = 1 → 中间列(目标)
- 2 % 3 = 2 → 第三列卡片
- 3 % 3 = 0 → 第一列卡片
- 4 % 3 = 1 → 中间列(目标)
- 5 % 3 = 2 → 第三列卡片
- 6 % 3 = 0 → 第一列卡片
- 7 % 3 = 1 → 中间列(目标)
- 8 % 3 = 2 → 第三列卡片
完全符合你想要的目标索引1、4、7!
修改后的代码示例
把你的背景色判断逻辑改成这样就可以了:
backgroundColor: index % 3 === 1 ? '#f00' : '#0f199a'
为什么这个公式成立?
因为三列布局中,每一行包含3张卡片,索引是连续递增的。从0开始计数时,每一行的中间卡片正好是该行的第2个位置(索引为1),所以对3取余结果为1的索引,就对应所有中间列的卡片啦。
内容的提问来源于stack exchange,提问作者Oliver D
相关产品推荐
相关产品推荐

