Spectrum Colorpicker 无法返回“背景颜色:透明”

Posted

技术标签:

【中文标题】Spectrum Colorpicker 无法返回“背景颜色:透明”【英文标题】:Spectrum Colorpicker unable to return "background-color: transparent" 【发布时间】:2014-04-27 14:42:44 【问题描述】:

我正在创建一个简单的 html 编辑器,用户可以在其中编辑预制的 html 块。

其中一个块具有默认背景颜色,我正在使用 Spectrum 让用户有机会更改它。

由于已经有一个默认背景(由 css 给出),我需要在选择空时光谱返回“背景颜色:透明”,因此默认值将被覆盖,但是光谱返回一个空字符串 (?)。

有没有办法返回“背景颜色:透明”?

这是我当前的设置:

$('input[data-toggle="colorpicker"]').spectrum(

    showInput: true,
    allowEmpty: true,
    showButtons: true,
    clickoutFiresChange: true,
    preferredFormat: "name"

);

【问题讨论】:

【参考方案1】:
$("#colorpicker").spectrum(
                color: "white",
                showInput: true,
                className: "full-spectrum",
                showInitial: true,
                showPalette: true,
                showSelectionPalette: true,
                maxSelectionSize: 10,
                preferredFormat: "hex",
                localStorageKey: "spectrum.demo",
                clickoutFiresChange: true,
                palette: [["transparent"]], 
change: function(color) 
if(color._originalInput.a === 0) 
         color  = "transparent";
else color = color.toHexString();
    $(this).val(color );

这是我的解决方案,用于检查所选颜色是否透明。由于我们无法将透明值转换为十六进制字符串,因此我们需要手动检查透明为字符串。

【讨论】:

【参考方案2】:

尝试使用更改事件....

$('input[data-toggle="colorpicker"]').spectrum(
    showInput: true,
    allowEmpty: true,
    showButtons: true,
    clickoutFiresChange: true,
    preferredFormat: "name",
    change: function(color) 
       if(color=='')
         // do something here
       
   
); 

【讨论】:

【参考方案3】:

这是我的解决方案:

$(".colorpicker").spectrum(
    showInput: true, 
    showPalette: true, 
    preferredFormat: "hex6",
    showButtons: false,
    clickoutFiresChange: true,
    palette: [["transparent"]],
    change: function(color) 
        if(color.alpha===0) 
            color = "transparent";
        else color = color.toHexString();
        $(this).val(color);
    
);

【讨论】:

以上是关于Spectrum Colorpicker 无法返回“背景颜色:透明”的主要内容,如果未能解决你的问题,请参考以下文章

Spectrum colorpicker 获得具有透明度的颜色

jQuery Colorpicker Spectrum api 中文 文档 属性 事件 方法

Spectrum.js 调色板在 UI 中无法正确显示

分区依据的 Amazon Redshift Spectrum 不返回结果

如何将 ColorPicker 值属性绑定到 ScalaFX 中的 ScalaFX ObjectProperty?

如何更改 Redshift Spectrum 中的外部表?