在开发过程中经常收到UI给的UI标注图,但经常会遇到rgba与16进制颜色的转换每次还要打开PS或其他颜色工具转换颜色,特别麻烦,索性直接徒手撸一个离线颜色转换小网页,开箱即用!
下方是css,html,javaScript源码
html
<h2>16进制转rgba</h2> <div class="line">
<input type="text" placeholder="请输入16进制例如:#ffffff" id="input1"><span id="change1" class="change-btn">转换</span><input type="text" id="input2"></div><h2>rgba转16进制</h2><div class="line"><input type="text" placeholder="请输入rgba例如:rgba(255,255,255,1)" id="input3"><span id="change2" class="change-btn">转换</span><input type="text" id="input4"></div><footer>BY:wkiwi</footer>
style
body{
text-align: center;}h2{margin: 50px 0;}input{width: 220px;height: 50px;padding: 0 20px;}.change-btn{display:inline-block;height:50px;line-height: 50px;text-align: center;width:100px;margin: 0 30px;background:#8e14fd;border-radius: 10px;color: #ffffff;}footer{position: absolute;bottom: 0;width:100%;text-align: center;}
js
// rgba转16进制: function RGBToHex(rgb){ var regexp = /[0-9]{0,3}/g; var re = rgb.match(regexp);//利用正则表达式去掉多余的部分,将rgb中的数字提取 var hexColor = "#"; var hex = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']; for (var i = 0; i < re.length; i++) { var r = null, c = re[i], l = c; var hexAr = []; while (c > 16){ r = c % 16; c = (c / 16) >> 0; hexAr.push(hex[r]); } hexAr.push(hex[c]); if(l < 16&&l != ""){ hexAr.push(0) } hexColor += hexAr.reverse().join(''); } //alert(hexColor) return hexColor; } //16进制转rgba function HexToRGB(hex){ var util = { cutHex: function (hex) { return hex.charAt(0) == "#" ? hex.substring(1, 7) : hex; }, hexToR: function (hex) { return parseInt((util.cutHex(hex)).substring(0, 2), 16) }, hexToG: function (hex) { return parseInt((util.cutHex(hex)).substring(2, 4), 16) }, hexToB: function (hex) { return parseInt((util.cutHex(hex)).substring(4, 6), 16) }, hexToRgba: function (hex) { return 'rgba('+util.hexToR(hex)+','+util.hexToG(hex)+','+util.hexToB(hex)+',1)'; } }; return util.hexToRgba(hex) } window.onload=function(){ let change1 = document.getElementById('change1'); let change2 = document.getElementById('change2'); change1.onclick= function(){ let val = document.getElementById('input1').value; document.getElementById('input2').value = HexToRGB(val) } change2.onclick= function(){ let val = document.getElementById('input3').value; document.getElementById('input4').value = RGBToHex(val) } }