9

我使用 jQuery 插件Spectrum作为颜色选择器:

$('#backgroundColorPicker').spectrum({
    color: '#000',
    showAlpha: true,
    move: function(color){
        $('#result').css('background-color',color.toHexString());
    }
});

在此处查看此代码:http: //jsfiddle.net/UkmXM/1/

如您所见,我设置showAlphatrue启用透明背景。但是,我没有得到透明的背景。

4

3 回答 3

17

十六进制字符串不支持透明度。改用color.toRgbString():http: //jsfiddle.net/UkmXM/2/

$('#backgroundColorPicker').spectrum({
    color: '#000',
    showAlpha: true,
    move: function(color){
        $('#result').css('background-color',color.toRgbString());
    }
});
于 2013-03-12T16:28:08.953 回答
0

我在TinyColor 文档中找到了它:toHex8String

于 2019-08-29T00:08:48.970 回答
0

在这个 javascript 库中,toHex8String() 当前返回 RGBA 的 alpha 分量在 RGB 之前,例如一个白色的半透明十六进制代码,应该是:#FFFFFF80 而是返回 #80FFFFFF,它是青色的。

已建议修复:https ://github.com/seballot/spectrum/issues/31但与此同时,您可以通过独立提取 alpha 值并将其附加到十六进制字符串来获得透明颜色,如下所示:

color.toHexString() + pad2(convertDecimalToHex(color._a)

于 2021-12-21T20:35:45.117 回答