我使用 Jpicker 已经有一段时间了,在今天之前,我的要求是只获取 6 位或 rgb 值并存储它们。但是,现在我也想使用 Alpha/透明度值。所以现在我的文本框应该包含 8 位而不是 6 位。为了启用 Alpha 支持,我确实在 Jpicker-1.1.6 中更改了这一行,js 在 $.fn.jPicker.defaults
alphaSupport:true // at line# 1748
这样做的原因是,尽管我也确实从 .erb 文件中启用了它,但 Alpha 并未显示。我的 .erb 文件中的代码如下所示
$('Alpha').jPicker({
window:{
expandable:true
},
color:{
//to enable Alpha support
alphaSupport:true,
active:new $.jPicker.Color({ ahex:'#ffcc00ff' })
},
position:{ x:$(this).offset.left + $(this).width(), y:($(this).offset.top - $(window).scrollTop()) + $(this).height() }
},
function (color, context) {
var all = color.val('all');
alert('Color chosen - hex: ' + (all && '#' + all.hex || 'none') + ' - alpha: ' + (all && all.a + '%' || 'none'));
if (all.a != null)
{
var b = Math.precision((all.a * 100) / 255, 0);
alert(b);
}
$('#Commit').css(
{
backgroundColor:all && '#' + all.hex || 'transparent'
}); // prevent IE from throwing exception if hex is empty
},
// For testing purpose
function (color, context) {
if (context == LiveCallbackButton.get(0)) alert('Color set from button');
var hex = color.val('hex');
LiveCallbackElement.css(
{
backgroundColor:hex && '#' + hex || 'transparent'
}); // prevent IE from throwing exception if hex is empty
},
function (color, context) {
alert('"Cancel" Button Clicked');
});
好吧,在渲染的 Jpicker 实例中,我可以看到一个启用的 Alpha 部分和 6 位十六进制旁边的小文本框。同样在警报中,我得到了所有部分的价值。但是,我主要关心的是如何显示整个 8 位数字,并且我还想存储它们,因为我已经存储了 6 位数字。
那是我的文本字段生成的 HTML。
<input id="app_setting_nav_background_color" class="colorInput Alpha" type="text"
value="000000" size="45" name="app_setting[nav_background_color]" maxlength="45"
style="background-color: rgb(0, 0, 0); color: rgb(255, 255, 255);">
所以简而言之,我想用现有的 RGB 颜色获得每个元素的 Alpha/透明度,比如“#000000f”