通过HTML/CSS/JavaScript实现5种可能的颜色?

通过HTML/CSS/JavaScript实现5种可能的颜色?,javascript,jquery,html,css,personalization,Javascript,Jquery,Html,Css,Personalization,我的电子商店有一个模块,允许用户挑选商品,并使用可以移动的彩色文本对其进行个性化设置。文本在文本字段中输入,文本的颜色通过JScolor.js创建的交互元素进行选择。选择颜色后,文本将自动更改其颜色 问题是我的物理个性化机器只支持5种基本颜色的打印。因此,是否有任何方法将调色板限制为仅这5种颜色,或以其他方式实现该效果/.js/html/css?如果要使用HTML5调色板,必须对这5种颜色的字段进行标准输入验证,否则对用户来说可能是一个巨大的可用性问题,真的没有办法说“嘿,调色板,只显示这些颜

我的电子商店有一个模块,允许用户挑选商品,并使用可以移动的彩色文本对其进行个性化设置。文本在文本字段中输入,文本的颜色通过JScolor.js创建的交互元素进行选择。选择颜色后,文本将自动更改其颜色


问题是我的物理个性化机器只支持5种基本颜色的打印。因此,是否有任何方法将调色板限制为仅这5种颜色,或以其他方式实现该效果/.js/html/css?

如果要使用HTML5调色板,必须对这5种颜色的字段进行标准输入验证,否则对用户来说可能是一个巨大的可用性问题,真的没有办法说“嘿,调色板,只显示这些颜色”。您可以做的是用允许的颜色制作5个样例,并让用户以这种方式进行选择。你可以设计一些单选按钮来实现这一点,还有许多其他方法来实现5个选项的可选字段。

如果你想使用HTML5调色板,你必须对这5种颜色的字段进行标准输入验证,否则,这对用户来说可能是一个巨大的可用性问题,真的没有办法说“嘿,调色板,只显示这些颜色”。您可以做的是用允许的颜色制作5个样例,并让用户以这种方式进行选择。您可以通过设置一些单选按钮的样式来实现这一点,还可以通过许多其他方法来实现5个选项的可选字段。

带有5个颜色选项的范围滑块

html


颜色滑块():
范围滑块:
js

$(函数(){
$(“#结果”).css({
“显示”:“块”,
“宽度”:“99%”,
“高度”:“50px”,
“边框”:“1px纯金”
});
$(“[data role='RangeSloider']a”)
.filter(“:last”)
.css(“显示”、“无”)
.addBack()
.filter(“:first”)
.css({
“边框”:“1px纯金”,
“背景颜色”:“灰色”
}).attr(“tabindex”,1).focus();
$(“输入[name='range-1a']”)。在(“更改”上,函数(e){
var color=$(this.val();
var结果=$(“#结果”);
如果(颜色<20){
结果:css(“背景色”、“红色”);
};       
如果(颜色>=20&&color<40){
结果:css(“背景色”、“蓝色”);
};
如果(颜色>=40&&color<60){
css(“背景色”、“绿色”)
};
如果(颜色>=60&&color<80){
css(“背景色”、“黄色”)
};  
如果(颜色>=80){
css(“背景色”、“橙色”)
};
$(“标签[for=range-1a]i”)
.text($(“#结果”)[0].style.backgroundColor);
$(“跨度”)
.text($(“#结果”).css(“背景色”))
});
});
JSFIDLE

副署长:


带有5种颜色选项的范围滑块

html


颜色滑块():
范围滑块:
js

$(函数(){
$(“#结果”).css({
“显示”:“块”,
“宽度”:“99%”,
“高度”:“50px”,
“边框”:“1px纯金”
});
$(“[data role='RangeSloider']a”)
.filter(“:last”)
.css(“显示”、“无”)
.addBack()
.filter(“:first”)
.css({
“边框”:“1px纯金”,
“背景颜色”:“灰色”
}).attr(“tabindex”,1).focus();
$(“输入[name='range-1a']”)。在(“更改”上,函数(e){
var color=$(this.val();
var结果=$(“#结果”);
如果(颜色<20){
结果:css(“背景色”、“红色”);
};       
如果(颜色>=20&&color<40){
结果:css(“背景色”、“蓝色”);
};
如果(颜色>=40&&color<60){
css(“背景色”、“绿色”)
};
如果(颜色>=60&&color<80){
css(“背景色”、“黄色”)
};  
如果(颜色>=80){
css(“背景色”、“橙色”)
};
$(“标签[for=range-1a]i”)
.text($(“#结果”)[0].style.backgroundColor);
$(“跨度”)
.text($(“#结果”).css(“背景色”))
});
});
JSFIDLE

副署长:


谢谢你的建议。最后,我创建了一个下拉列表,并将五种颜色指定为值:

<select id="tcolor" class="color">
    <option value="0000FF">Blue</option>
    <option value="000000">Black</option>
    <option value="FF0000">Red</option>
    <option value="C0C0C0">Silver</option>
    <option value="FFD700">Gold</option>
 </select>

蓝色
黑色
红色
银币
黄金

不确定后台的编码,但这是必需的。

谢谢您的建议。最后,我创建了一个下拉列表,并将五种颜色指定为值:

<select id="tcolor" class="color">
    <option value="0000FF">Blue</option>
    <option value="000000">Black</option>
    <option value="FF0000">Red</option>
    <option value="C0C0C0">Silver</option>
    <option value="FFD700">Gold</option>
 </select>

蓝色
黑色
红色
银币
黄金

不确定背景中的编码,但这符合要求。

您可以将颜色列为文本,让用户选择即可。我不知道你说的个性化机器是什么意思,是打印机吗?如果只有5种可能的颜色,那么你为什么要使用如此广泛的颜色选择器?是的,我指的是打印机(嗯,有点),抱歉,如果这不是很清楚的话。此外,我还被交给了个性化模块,因此我在使用jscolor时没有发言权。您可以随时将颜色列为文本,让用户选择即可。我不知道你说的个性化机器是什么意思,是打印机吗?如果只有5种可能的颜色,那么你为什么要使用如此广泛的颜色选择器?是的,我指的是打印机(嗯,有点),抱歉,如果这不是很清楚的话。此外,我还被移交了个性化模块,因此我在使用jscolor时没有发言权。
<select id="tcolor" class="color">
    <option value="0000FF">Blue</option>
    <option value="000000">Black</option>
    <option value="FF0000">Red</option>
    <option value="C0C0C0">Silver</option>
    <option value="FFD700">Gold</option>
 </select>