版本:Mui v3.7.0
同样出现了这样的问题,我看了下mui.js的源码
// 第8007行,这行代码中,mui.getStyles(this.element, 'backgroundColor')的值是rgb类型的,不是rgba
var color = getColor(mui.getStyles(this.element, 'backgroundColor'));
// 更改如下:
// 第7961行,上面调用getColor()函数执行到这里,
// 这是正则匹配rgba,由于传过来的是rgb,所以不可能匹配到
var rgbaRegex = /^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d*(?:\.\d+)?)\)$/;
// 更改如下
var rgbaRegex = /^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d*(?:\.\d+)?)\)$/;
var rgbRegex = /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/;
var getColor = function(colorStr) {
var matches = colorStr.match(rgbaRegex);
var matches1 = colorStr.match(rgbRegex);
console.log(matches1)
if (matches && matches.length === 5) {
return [
matches[1],
matches[2],
matches[3],
matches[4]
];
} else if(matches1 && matches1.length === 4) {
return [
matches1[1],
matches1[2],
matches1[3],
1.0
];
}
return [];
};
我在这个函数中添加了一个判断,如果是rgb时,还是返回rgb的颜色,并设置默认opacity为1
9***@qq.com
请问bug已经修改了吗?
2016-10-09 18:19
Trust
回复 9***@qq.com:已修复
2016-10-09 20:16
Runic (作者)
这个还是存在 BUG,我尝试设置 rgba(0,0,0,0.9) 时, 0.9 取值 会浮点数溢出,变成 0.901961 这应该是 js 比较出名的BUG、你们正则 还得优化。
2017-01-14 15:33
Runic (作者)
调用 mui.getStyles 取值得到的内容。 "rgba(0, 0, 0, 0.901961)" 正则只匹配了 3位小数。
2017-01-14 15:34