搜索

首页  >  问答  >  正文

在 Javascript 函数中使用 classList 添加 CSS 类,但样式发生冲突,因为最新的类不优先

我的函数计算屏幕上可见的卡片数量,如果全部显示,则将 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粉738821035P粉738821035448 天前553

全部回复(2)我来回复

  • P粉579008412

    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')
       }
    }
    
    

    回复
    0
  • P粉395056196
  • 取消回复