簡體   English   中英

如何使用JavaScript為Fontawesome圖標着色?

[英]How do I color a fontawesome icon with javascript?

我有以下fa-icon

<div id="notification">
    <div id="info">
        <div class="service">
            <i class="fas fa-music"></i>
            <h1 class="name"></h1>
        </div>
    </div>
</div>

我嘗試了以下方法以javascript為其着色:

var Music = (swatches.DarkVibrant.getHex());
document.getElementById("info").getElementsByClassName("service")[0].style.color = Music;

// Gave i element this id
document.querySelector('#music').style.color = Music;
document.querySelector('.fas fa-music').style.color = Music;

但是它們都不起作用,我怎么能做到這一點?

編輯:好像它只在我的函數外部起作用,為什么當它在我的函數內部不起作用?

// Works
document.querySelector('.fas').style.color = "blue"

function mainUpdate(type) {
    if (type == "music") {
        if (isplaying) {
            document.querySelector('.name').innerHTML = "Now playing";
            document.querySelector('.details').innerHTML = "• " + album;
            document.querySelector('.song').innerHTML = title;
            document.querySelector('.artist').innerHTML = artist;
            var milli = new Date().getMilliseconds();
            var albumart = document.querySelector("#artworkImage");
            albumart.src = "/var/mobile/Documents/Artwork.jpg?" + milli;
            albumart.addEventListener('load', function () {
                var vibrant = new Vibrant(albumart);
                var swatches = vibrant.swatches()
                for (var swatch in swatches)
                    if (swatches.hasOwnProperty(swatch) && swatches[swatch]) {
                        var Name = (swatches.DarkVibrant.getHex());
                        var Music = (swatches.DarkVibrant.getHex());
                    }
                document.querySelector('.name').style.color = Name; // Works
                document.querySelector('.fas').style.color = "blue" // Doesnt work
            });
        }
    }
}

由於5.0使用SVG請嘗試

document.querySelector('.fas fa-music').style.fill = Music;

如果這不起作用,則必須在其中選擇SVG並在其中應用規則

做類似的事情

document.querySelector('.fa.fa-sign-in').style.color = "green"

您的選擇器有誤。 對於您的情況,修改樣式的正確行將是

document.querySelector('.fas.fa-music').style.color = "green"

將“綠色”更改為您的顏色

您是否嘗試了以下代碼?

document.querySelector('#info .service .fa-music').style.color = Music;

這個也應該起作用:

document.querySelector('.fas.fa-music').style.color = Music;

您似乎通過編寫('.fas fa-music')犯了一個小錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM