JavaScript判断索引是否为8的倍数及反向逻辑实现问题
解决向上滚动触发逻辑的问题
嘿,我完全get到你的困扰了!你已经顺利实现了向下滚动的触发条件——当currentIndex是8的倍数(8、16、24...)时打印“Go down”,但反向的向上触发逻辑还没搞定对吧?
根据你提到的例子:当currentIndex为12时,下一个向下触发点是16(符合8的倍数逻辑),而向上的触发点应该是9。那咱们可以拆解出向上触发的核心规律:currentIndex是8的倍数加1(比如9=8×1+1,17=8×2+1,25=8×3+1...)。
完整逻辑代码示例
假设你的索引是从1开始计数的(和你描述的例子匹配),可以这样写:
// 向下滚动触发逻辑(你已实现的部分) if (currentIndex % 8 === 0) { console.log("Go down"); } // 向上滚动触发逻辑(新增的反向逻辑) if (currentIndex % 8 === 1) { console.log("Go up"); }
如果你的索引是从0开始计数的(很多前端场景里会这样),那逻辑需要稍微调整:
- 向下触发:当索引是每8条的最后一个(7、15、23...),也就是
currentIndex % 8 === 7 - 向上触发:当索引是每8条的第一个(8、16、24...),也就是
currentIndex % 8 === 0 && currentIndex !== 0(排除初始的0索引)
对应的代码:
// 向下滚动触发逻辑(适配0开始的索引) if (currentIndex % 8 === 7) { console.log("Go down"); } // 向上滚动触发逻辑(适配0开始的索引) if (currentIndex % 8 === 0 && currentIndex !== 0) { console.log("Go up"); }
你可以根据自己实际的索引计数方式来选择对应的逻辑,这样就能精准触发向上和向下的操作啦!
内容的提问来源于stack exchange,提问作者pr0b
相关产品推荐
相关产品推荐

