16进制颜色转RGB模式带透明度

复制代码
function toColorRgba(color, opacity) {
    // 16进制颜色值的正则
    var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
    // 把颜色变成小写
    var color = color.toString().toLowerCase();
    if (reg.test(color)) {
        // 如果只有三位的值,需要转换成六位 #fff => #ffffff
        if (color.length == 4) {
            var colorNew = '#';
            for (var i = 1; i < 4; i += 1) {
                colorNew += color.slice(i, i + 1).concat(color.slice(i, i + 1));
            }
            color = colorNew;
        }
        // 处理六位的颜色值,转为RGB格式
        var colorChange = [];
        for (var i = 1; i < 7; i += 2) {
            colorChange.push(parseInt('0x' + color.slice(i, i + 2)));
        }
        var rgbaStr = 'rgba(' + colorChange.join(',') + ',' + opacity/100 + ')';
        return rgbaStr;
    } else {
        return color;
    }
}
复制代码

 

posted @   喵~喵  阅读(321)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示