| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /**
- * 16进制转rgb
- * @param {String} color
- * @returns {String}
- */
- export const hex2rgb = (color) => {
- var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
- var sColor = color.toLowerCase()
- if (sColor && reg.test(sColor)) {
- if (sColor.length === 4) {
- var sColorNew = "#"
- for (var i = 1; i < 4; i += 1) {
- sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
- }
- sColor = sColorNew
- }
- //处理六位的颜色值
- var sColorChange = [];
- for (var i = 1; i <= 6; i += 2) {
- sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2)));
- }
- return "rgba(" + sColorChange.join(",") + ")"
- } else {
- return sColor
- }
- }
- // rbg带透明度转16进制
- export const rgb2hex = (color) => {
- var values = color
- .replace(/rgba?\(/, '')
- .replace(/\)/, '')
- .replace(/[\s+]/g, '')
- .split(',')
- var a = parseFloat(values[3] || 1),
- r = Math.floor(a * parseInt(values[0]) + (1 - a) * 255),
- g = Math.floor(a * parseInt(values[1]) + (1 - a) * 255),
- b = Math.floor(a * parseInt(values[2]) + (1 - a) * 255);
- return "#" +
- ("0" + r.toString(16)).slice(-2) +
- ("0" + g.toString(16)).slice(-2) +
- ("0" + b.toString(16)).slice(-2)
- }
- // 16进制转换rgb,并设置透明度
- export const hex2rgba = (color, opacity) => {
- var theColor = color.toLowerCase()
- //十六进制颜色值的正则表达式
- var r = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
- // 如果是16进制颜色
- if (theColor && r.test(theColor)) {
- if (theColor.length === 4) {
- var sColorNew = "#"
- for (var i = 1; i < 4; i += 1) {
- sColorNew += theColor.slice(i, i + 1).concat(theColor.slice(i, i + 1))
- }
- theColor = sColorNew
- }
- //处理六位的颜色值
- var sColorChange = []
- for (var i = 1; i < 7; i += 2) {
- sColorChange.push(parseInt("0x" + theColor.slice(i, i + 2)))
- }
- return "rgba(" + sColorChange.join(",") + "," + opacity + ")"
- }
- return theColor
- }
|