除非你打算再添加一大堆,否则不需要过早优化,几个if-else语句也没有错。但如果你
是
将添加更多案例,您可以这样做(未测试):
useEffect(() => {
document.addEventListener("scroll", () => {
const select = document.querySelector;
[
{ idEl: select("#prices"), classEl: select(".pricesArr"), newClass: "pricesArrAnim" },
{ idEl: select("#contact"), classEl: select(".contact"), newClass: "contactAnim" },
{ idEl: select("#moreinfo"), classEl: select(".moreinfo"), newClass: "moreinfoAnim" }
].forEach(obj => {
if(obj.idEl.getBoundingClientRect().top == 78){
obj.classEl.style.opacity = 1
obj.classEl.classList.add(obj.newClass)
}
else if(obj.idEl.getBoundingClientRect().top > 660){
obj.classEl.style.opacity = 0
obj.classEl.classList.remove(obj.newClass)
}
});
})
})
因此,在这种情况下,如果你想添加另一个案例,你只需使用
idEl
,
classEl
和
newClass
你需要,它也会这样做。一行添加另一个案例。