单击时更改 Font Awesome 图标的颜色:CSS / JavaScript

Changing color of Font Awesome icon on click: CSS / JavaScript

如果我在这里很愚蠢,请提前原谅我,但当我使用 JavaScript 在我的网站上单击菜单时,我正在尝试将 3 个 Font Awesome 图标的颜色从白色更改为黑色以添加在当前 class 的“social-icon”之上添加一个 class 的“active”,这样 CSS 就被激活了。

我正在使用名为 'toggle' 的 div 作为导航栏,目前只有第一个图标在单击时变为黑色。我试过使用 querySelectorAll 代替,但这不起作用,我也试过将社交图标 class 移动到字体真棒图标 class 内,但还是没有。我只是好奇我哪里出错了。

谢谢

JS

const menuToggle = document.querySelector('.toggle')
const showcase = document.querySelector('.showcase')
const socialToggle = document.querySelector('.social-icon')

menuToggle.addEventListener('click', function() {
    menuToggle.classList.toggle('active')
    showcase.classList.toggle('active')
    socialToggle.classList.toggle('active')
})

CSS

.social {
    position: fixed;
    bottom: 18px;
    right: 40px;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
}

.social li {
    list-style: none;
}

.social-icon {
    display: inline-block;
    transform: scale(0.5);
    margin-right: 25px;
    transition: 0.5s;
    font-size: 40px;
    cursor: pointer;
}

.social-icon.active {
color: black;
}

HTML


            <div class="toggle"></div>


<ul class="social">
            <li class="social-icon"><i class="fab fa-facebook-f"></i></li>
            <li class="social-icon"><i class="fab fa-instagram"></i></li>
            <li class="social-icon"><i class="fab fa-tiktok"></i></li>
        </ul>

您可以使用querySelectorAll获取包含所有图标的节点列表,然后迭代它们:

const menuToggle = document.querySelector('.toggle');
const showcase = document.querySelector('.showcase');
const socialToggle = document.querySelectorAll('.social-icon');

menuToggle.addEventListener('click', function() {
    menuToggle.classList.toggle('active');
    showcase.classList.toggle('active');
    socialToggle.forEach(function(el) {
        el.classList.toggle('active');
    });
})