我的函数计算屏幕上可见的卡片数量,如果全部显示,则将 arrow-up
类添加到我的图标中,如果某些卡片仍然对用户隐藏,则 arrow添加-down
图标。
const showMoreIcon = document.querySelector('.cta-icon'); function myFunction(){ const btnIcon = cardsOnShow >= cards.length ? 'arrow-up' : 'arrow-down'; showMoreIcon.classList.add(btnIcon); }
<span class="medium-icon"></span>
这有效,但是我可以在 DOM 中看到正确的类被添加到 span
中,因为我期望它,因为添加了 arrow-down
类首先(在显示所有可见卡片之前,用户必须多次展开内容) - 然后,尽管添加了 arrow-up
类,但它不会覆盖 arrow-down
。 p>
如何确保添加 arrow-up
时,arrow-down
被删除,反之亦然?我之前曾使用 toggle
来实现简单的打开/关闭图标,但这不起作用,因为它在关闭之前可能会展开多次。
P粉5790084122023-09-11 14:59:10
我建议删除您不再需要的课程:
function myFunction(){ if (cardsOnShow >= cards.length) { showMoreIcon.classList.add('arrow-up') showMoreIcon.classList.remove('arrow-down') } else { showMoreIcon.classList.remove('arrow-up') showMoreIcon.classList.add('arrow-down') } }
P粉3950561962023-09-11 12:38:15
级联考虑了许多因素 a>,这是一组规则,用于确定当两个冲突的规则应用于同一元素时哪个规则“获胜”。
在 HTML 元素上定义类的顺序不是这些因素之一。