gpt4 book ai didi

javascript - 更新 Spectrum JS Colorpicker Palette 中的新颜色

转载 作者:行者123 更新时间:2023-11-28 04:49:18 30 4
gpt4 key购买 nike

我正在使用频谱 jQuery colorpicker 并更改背景颜色,工作正常,但只有一个问题。刷新页面后,选择器按钮的颜色变为黑色而不是所选颜色(例如红色)页面的背景颜色更改没有任何问题,除此之外一切正常。看看这个(点击查看图片):

Selected Color -> after refreshing the page

这是我的代码:

HTML:

<input id="colorpicker" style="display: none;">

JS:

var currColor = $.cookie('body_color') || 'rgba(0, 0, 0, 0.5)';
$('body').css('background-color', currColor);
$("#colorpicker").spectrum({
preferredFormat: 'rgb',
showInput: true,
showAlpha: true,
color: currColor.substring(1),
move: function(color) {
$('body').css('background-color', color.toRgbString());
$.cookie('body_color', color.toRgbString(), {
expires: 365
});
}
});

我该如何解决这个问题?

如果我将 color.toRgbString() 更改为 color.toHexString() 这个问题得到解决,但会出现另一个问题(之后我不能使用 rgba 颜色作为页面背景并且透明度不起作用):

var currColor = $.cookie('body_color') || 'rgba(0, 0, 0, 0.5)';
$('body').css('background-color', currColor);
$("#colorpicker").spectrum({
preferredFormat: 'rgb',
showInput: true,
showAlpha: true,
color: currColor.substring(1),
move: function(color) {
$('body').css('background-color', color.toHexString());
$.cookie('body_color', color.toHexString(), {
expires: 365
});
}
});

最佳答案

我有一个想法,但你应该编辑spectrum.js 文件。该函数 function inputToRGB(color) 强制颜色选择器按钮的 rgba 颜色设置为 rgb(0, 0, 0) (当您选择 rgba 颜色时,刷新页面后,颜色选择器按钮的颜色强制设置为 rgb(0, 0, 0)设置为该值,但十六进制没有问题)。

解决此问题:

在spectrum.js中找到此代码:

function inputToRGB(color) {

var rgb = { r: 0, g: 0, b: 0 };
var a = 1;

然后将上面的代码更改为:

    function inputToRGB(color) {

var colorString = color.toString(),
colorsOnly = colorString.substring(colorString.indexOf('(') + 1, colorString.lastIndexOf(')')).split(/,\s*/),
red = colorsOnly[0],
green = colorsOnly[1],
blue = colorsOnly[2],
opacity = colorsOnly[3];

var rgb = { r: red, g: green, b: blue };
var a = opacity;

使用上面的正则表达式从浏览器cookie中获取颜色值,然后提取4段rgba颜色代码的颜色值,然后在'rgb'和'a'变量中使用它们!您可以同时使用 color.toString()color.toRgbString()

关于javascript - 更新 Spectrum JS Colorpicker Palette 中的新颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43083349/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com