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

  • iZAPPA

    iZAPPA

    16 Temmuz 2010
  • ŠĩŗĜŕôŵåɭȍҭҭ

    ŠĩŗĜŕô

    29 Kasım 2009
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006