2

我正在寻找一个 javascript 颜色选择器,我可以使用它设置颜色和不透明度。返回的字符串必须是 8 位长的十六进制值(不包括 #)。

已经看过了

和许多其他人。但是它们都没有给我我想要的东西,我不想弄乱修剪字符串等,因为颜色选择器必须在一页上实现大约 100 次才能实现蒙皮编辑器。

编辑

http://jscolor.com/

这是使用 JSColor 的样子:

http://img707.imageshack.us/img707/3962/unbenannt3op.png

这是代码,我用它在我的 bean 中获取和设置十六进制代码:

<h:inputText styleClass="color {hash:true}"
             value="#{skinningBean.currentSkin.titleBar.backgroundColorStart}">
<a4j:ajax event="change" render="preview" />

除了缺少 alpha 值(最后 2 位数字)之外,这将工作得非常好。

4

4 回答 4

3

我不知道为什么它不容易找到,但光谱具有我在颜色选择器中所需的一切。(在找到光谱之前,我一直在使用 minicolors。)

我不知道它是否需要 8 位十六进制,但我知道它会接受 4 个参数 rgba。(它使用一个名为tinycolor的插件进行所有颜色解析。)

于 2013-03-14T15:40:28.507 回答
1

我用 JavaScript 编写了一个公共域颜色选择器。根据您的要求,我现在添加了一个以 RRGGBBAA 格式显示颜色的功能,并带有十六进制组件。

要启用此功能,请为文本框指定一个以“rgbahex_”开头的 ID,如下例所示:

<input type="text" value="ff0000ff" name="c2" id="rgbahex_c2">

通过这样做,文本框将被转换为颜色选择器。但是,只有在页面完全加载之前输入框出现在 HTML 中时,它才会起作用。如果您在运行时创建颜色选择器,请使用以下 JavaScript 进行设置:

textbox.value="ff0000ff";
PDColorPicker.setColorPicker(textbox,{rgbahex:true});

setColorPicker还将文本框转换为颜色选择器。


我更新了颜色选择器以添加颜色格式 AARRGGBB。在上面的示例中使用argbhex而不是。rgbahex

你也可以用“rgbahex_”、“argbhex_”等开始一个文本框的类名,而不是ID,来转,把文本框变成一个颜色选择器。我认为这对应styleClass于您的 XML 中的属性。

于 2013-03-22T03:01:33.190 回答
0

您可以通过定义一个“修剪字符串并执行此操作”功能来管理它,该功能只需实现一次,然后在任何地方调用它。

于 2013-03-14T15:41:35.350 回答
0

我建议使用 Scott 建议的光谱颜色选择器,但是您可以从中获取 RGB 值,并使用此属性:

background: rgba(132,182,19,.5);

这样,它将设置当前 div 的背景,并且它将像你想要的那样不透明(所以你必须找到一种方法来给它你想要的不透明度),但至少你会得到颜色选择器的值。如果您想了解更多关于使用 rgba 的后备和 IE 解决方法的信息,请查看CSS Tricks

更新:

如果您必须使用十六进制值,请尝试这样的操作:

http://jsfiddle.net/WzGG6/1/

于 2013-03-14T15:55:49.617 回答