我做了一個十六進制到RGB轉換的JSFiddle,但我想知道怎樣才能做到另一種方式(RGB到十六進制)。RGB到十六進制轉換JavaScript
$('#hex').bind('blur keydown', function (event) {
setTimeout(function() {
var rgb = [],
broken = false,
value = $("#hex").val(),
hex = (value+'').replace(/#/, '');
if (value.length === 1 && value !== '#') {
$("#hex").val(value);
}
if (hex.length == 3) hex = hex + hex;
for (var i = 0; i < 6; i+=2) {
rgb.push(parseInt(hex.substr(i,2),16));
broken = broken || rgb[rgb.length - 1].toString() === 'NaN';
}
$('#rgb').val(broken ? '' : 'rgb(' + rgb.join(',') + ')');
}, 13);
});
'#hex'
和'#rgb'
只是輸入:
<input type="text" id="hex" placeholder="hex">
<input type="text" id="rgb" placeholder="rgb">
我也想知道爲什麼,如果我是用false
更換broken
,我得到一個錯誤。你知道爲什麼我不能刪除var broken = false
,只需要替換爲false
?
備註:您的邏輯是目前錯誤的。 '#abc'不是'#abcabc',而是'#aabbcc'。 – Zeta 2013-04-06 11:43:21
哦,是嗎?我該如何解決這個問題?對不起,我是JavaScript新手。 – user2203362 2013-04-06 11:44:55
請參閱http://stackoverflow.com/q/5623838/989121 – georg 2013-04-06 11:45:10