ボタンのボックスシャドウを動的に背景色にするコードがいくつか作成されましたが、動作しない4桁の16進コードが返されることがあります。 コードで何が間違っているか教えてもらえますか?jquery色を暗くするコードが4桁の16進コードを返す
それはあなたの例
function rgb2hex(rgb){
rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
return "#" + ("0" + parseInt(rgb[1],10).toString(16)).slice(-2) + ("0" + parseInt(rgb[2],10).toString(16)).slice(-2) + ("0" + parseInt(rgb[3],10).toString(16)).slice(-2);}
function LightenDarkenColor(col, amt) {
var usePound = false;
if (col[0] == "#") {
col = col.slice(1);
usePound = true;
}
var num = parseInt(col,16);
var r = (num >> 16) + amt;
if (r > 255) r = 255;
else if (r < 0) r = 0;
var b = ((num >> 8) & 0x00FF) + amt;
if (b > 255) b = 255;
else if (b < 0) b = 0;
var g = (num & 0x0000FF) + amt;
if (g > 255) g = 255;
else if (g < 0) g = 0;
return (usePound?"#":"") + (g | (b << 8) | (r << 16)).toString(16);}
$("input[type=submit]").each(function() {
//get button color
var btnclr = $(this).css("background-color");
//make darker
$(this).css({"box-shadow": "0 -3px 20px " + LightenDarkenColor(rgb2hex(btnclr), -80) + " inset"});
});
'0を返す<< 8'が '0'になるが、あなたは色ごとに2桁の数字が必要です(つまり '00')、左パディング機能をお勧めします – Shameen
@Shameenどういう意味ですか? –