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ş:
Java Hashmap: Nasıl anahtar değerini a...
Nasıl bir ArrayList son değeri almak i...
Nasıl Vim içinde yüklü tüm renk şemala...
Nasıl Unicode olanları yerine string N...
Nasıl Spinner değerini almak için?...