add color plugins to tran color
This commit is contained in:
parent
4162cc0475
commit
8d00b53c15
|
@ -0,0 +1,53 @@
|
||||||
|
const hexReg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
|
||||||
|
const rgbReg = /^(rgb|rgba|RGB|RGBA)/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description hex color to rgb / rgba color
|
||||||
|
* @param {string} rgba opacity
|
||||||
|
* @return {string} rgb / rgba color
|
||||||
|
*/
|
||||||
|
export function hexToRgb (hex, opacity) {
|
||||||
|
if (!hex || !hexReg.test(hex)) return false
|
||||||
|
|
||||||
|
hex = hex.toLowerCase().replace('#', '')
|
||||||
|
|
||||||
|
// deal 3bit hex color to 6bit hex color
|
||||||
|
hex.length === 3 && (hex = Array.from(hex).map(hexNum => hexNum + hexNum).join())
|
||||||
|
|
||||||
|
let rgb = []
|
||||||
|
|
||||||
|
for (let i = 0; i < 6; i += 2) {
|
||||||
|
rgb.push(parseInt(`0x${hex.slice(i, i + 2)}`))
|
||||||
|
}
|
||||||
|
|
||||||
|
rgb = rgb.join(',')
|
||||||
|
|
||||||
|
if (opacity) {
|
||||||
|
return `rgba(${rgb}, ${opacity})`
|
||||||
|
} else {
|
||||||
|
return `rgb(${rgb})`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description rgb / rgba color to hex color
|
||||||
|
* @return {string} hex color
|
||||||
|
*/
|
||||||
|
export function rgbToHex (rgb) {
|
||||||
|
if (!rgb || !rgbReg.test(rgb)) return false
|
||||||
|
|
||||||
|
rgb = rgb.toLowerCase().replace(/rgb\(|rgba\(|\)/g, '').split(',').slice(0, 3)
|
||||||
|
|
||||||
|
const hex = rgb.map((rgbNum) => Number(rgbNum).toString(16)).map((rgbNum) => rgbNum === '0' ? rgbNum + rgbNum : rgbNum).join('')
|
||||||
|
|
||||||
|
return `#${hex}`
|
||||||
|
}
|
||||||
|
|
||||||
|
const color = {
|
||||||
|
hexToRgb,
|
||||||
|
rgbToHex
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function (Vue) {
|
||||||
|
Vue.prototype.color = color
|
||||||
|
}
|
|
@ -2,10 +2,13 @@ import methodsExtend from './methodsExtend'
|
||||||
|
|
||||||
import canvasExtend from './canvasExtend'
|
import canvasExtend from './canvasExtend'
|
||||||
|
|
||||||
|
import colorExtend from './colorExtend'
|
||||||
|
|
||||||
import axiosExtend from './axiosExtend'
|
import axiosExtend from './axiosExtend'
|
||||||
|
|
||||||
export default function (Vue) {
|
export default function (Vue) {
|
||||||
methodsExtend(Vue)
|
methodsExtend(Vue)
|
||||||
canvasExtend(Vue)
|
canvasExtend(Vue)
|
||||||
|
colorExtend(Vue)
|
||||||
axiosExtend(Vue)
|
axiosExtend(Vue)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue