SORU
16 Kasım 2009, PAZARTESİ


Nasıl RGB değeri yerine hex renk değerini almak için?

Aşağıdaki jQuery kullanarak bir elemanın arka plan RGB değerini alacak renk:

$('#selector').css('backgroundColor');

Bir şekilde RGB yerine hex değeri almak için var mı?

CEVAP
2 EYLÜL 2010, PERŞEMBE


İşte @Matt öneri dayanarak yazdım daha temiz bir çözüm

function rgb2hex(rgb) {
    rgb = rgb.match(/^rgb\((\d ),\s*(\d ),\s*(\d )\)$/);
    function hex(x) {
        return ("0"   parseInt(x).toString(16)).slice(-2);
    }
    return "#"   hex(rgb[1])   hex(rgb[2])   hex(rgb[3]);
}

Bazı tarayıcıların renk olarak onaltılık (Internet Explorer 8 ve altı olarak) verir. Eğer bu gibi olaylarla gerekiyorsa, sadece @gfrobenius önerdiğin gibi işlev içinde, bir koşul ekleyin

function rgb2hex(rgb) {
    if (/^#[0-9A-F]{6}$/i.test(rgb)) return rgb;

    rgb = rgb.match(/^rgb\((\d ),\s*(\d ),\s*(\d )\)$/);
    function hex(x) {
        return ("0"   parseInt(x).toString(16)).slice(-2);
    }
    return "#"   hex(rgb[1])   hex(rgb[2])   hex(rgb[3]);
}

Eğer jQuery kullanarak ve daha kapsamlı bir yaklaşım istiyorsanız, CSS Hooks jQuery beri mevcut gösterdiğim gibi 1.4.3 kullanabilirsiniz bu soruyu cevaplarken: Can I force jQuery.css("backgroundColor") returns on hexadecimal format?

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FOSDEM

    FOSDEM

    13 Ocak 2009
  • Justin Schenck

    Justin Schen

    24 Kasım 2006
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012