通过JS使用RGB输入框上色
Using RGB input boxes to apply color through JS
希望有人能在这里帮助我,我正在编写一些代码,使用 3 个代表 RGB 的输入框将不同的颜色应用于文本区域,但我似乎无法获得要应用的值。这是我正在玩的代码。
function rgb(r, g, b) {
return "rgb("+r+","+g+","+b+")";
}
document.getElementById("id1").style.backgroundColor = rgb;
<table>
<tbody>
<tr>
<td colspan="5">
<textarea id="id1" cols="50" rows="10"></textarea>
<!-- RGB value boxes !-->
</td>
<td>
R
<input type=text size=3 maxlength=3 name="r" value="0" onBlur="rgb(this.value);">
</td>
<td>
G
<input type=text size=3 maxlength=3 name="g" value="0" onBlur="rgb(this.value);">
</td>
<td>
B
<input type=text size=3 maxlength=3 name="b" value="0" onBlur="rgb(this.value);">
</td>
如有任何帮助,我们将不胜感激。
您正在做 rgb(this.value)
,它只给函数 1 值以供使用。从函数中删除参数,并动态获取其中的 rgb 值。
我认为这基本上就是您尝试做的事情:
function rgb() {
document.getElementById("id1").style.backgroundColor =
"rgb("+document.getElementById("red").value+","
+document.getElementById("green").value+","
+document.getElementById("blue").value+")";
}
<table>
<tbody>
<tr>
<td colspan="5">
<textarea id="id1" cols="50" rows="10"></textarea>
<!-- RGB value boxes !-->
</td>
<td>
R
<input id="red" type=text size=3 maxlength=3 name="r" value="0" onBlur="rgb()">
</td>
<td>
G
<input id="green" type=text size=3 maxlength=3 name="g" value="0" onBlur="rgb()">
</td>
<td>
B
<input id="blue" type=text size=3 maxlength=3 name="b" value="0" onBlur="rgb()">
</td>
</tr>
</tbody>
</table>
这是工作中的 JSFiddle:
https://jsfiddle.net/n74dxarn/
它对您不起作用的原因是,您在 javascript 代码的末尾调用了没有任何参数的 rgb 函数,并且当 onBlur 被激活时,您调用的函数仅包含一个参数。
希望对你有所帮助
试试这个:
var r=0;
var g=0;
var b=0;
function rgb(elem) {
var name = elem.name;
var val = elem.value;
window[name] = val;
document.getElementById("id1").style.backgroundColor = 'rgb('+r+','+g+','+b+')';
}
<table>
<tbody>
<tr>
<td colspan="5">
<textarea id="id1" cols="50" rows="10"></textarea>
<!-- RGB value boxes !-->
</td>
<td>
R
<input type=text size=3 maxlength=3 name="r" value="0" onBlur="rgb(this);">
</td>
<td>
G
<input type=text size=3 maxlength=3 name="g" value="0" onBlur="rgb(this);">
</td>
<td>
B
<input type=text size=3 maxlength=3 name="b" value="0" onBlur="rgb(this);">
</td>
希望有人能在这里帮助我,我正在编写一些代码,使用 3 个代表 RGB 的输入框将不同的颜色应用于文本区域,但我似乎无法获得要应用的值。这是我正在玩的代码。
function rgb(r, g, b) {
return "rgb("+r+","+g+","+b+")";
}
document.getElementById("id1").style.backgroundColor = rgb;
<table>
<tbody>
<tr>
<td colspan="5">
<textarea id="id1" cols="50" rows="10"></textarea>
<!-- RGB value boxes !-->
</td>
<td>
R
<input type=text size=3 maxlength=3 name="r" value="0" onBlur="rgb(this.value);">
</td>
<td>
G
<input type=text size=3 maxlength=3 name="g" value="0" onBlur="rgb(this.value);">
</td>
<td>
B
<input type=text size=3 maxlength=3 name="b" value="0" onBlur="rgb(this.value);">
</td>
如有任何帮助,我们将不胜感激。
您正在做 rgb(this.value)
,它只给函数 1 值以供使用。从函数中删除参数,并动态获取其中的 rgb 值。
我认为这基本上就是您尝试做的事情:
function rgb() {
document.getElementById("id1").style.backgroundColor =
"rgb("+document.getElementById("red").value+","
+document.getElementById("green").value+","
+document.getElementById("blue").value+")";
}
<table>
<tbody>
<tr>
<td colspan="5">
<textarea id="id1" cols="50" rows="10"></textarea>
<!-- RGB value boxes !-->
</td>
<td>
R
<input id="red" type=text size=3 maxlength=3 name="r" value="0" onBlur="rgb()">
</td>
<td>
G
<input id="green" type=text size=3 maxlength=3 name="g" value="0" onBlur="rgb()">
</td>
<td>
B
<input id="blue" type=text size=3 maxlength=3 name="b" value="0" onBlur="rgb()">
</td>
</tr>
</tbody>
</table>
这是工作中的 JSFiddle: https://jsfiddle.net/n74dxarn/
它对您不起作用的原因是,您在 javascript 代码的末尾调用了没有任何参数的 rgb 函数,并且当 onBlur 被激活时,您调用的函数仅包含一个参数。
希望对你有所帮助
试试这个:
var r=0;
var g=0;
var b=0;
function rgb(elem) {
var name = elem.name;
var val = elem.value;
window[name] = val;
document.getElementById("id1").style.backgroundColor = 'rgb('+r+','+g+','+b+')';
}
<table>
<tbody>
<tr>
<td colspan="5">
<textarea id="id1" cols="50" rows="10"></textarea>
<!-- RGB value boxes !-->
</td>
<td>
R
<input type=text size=3 maxlength=3 name="r" value="0" onBlur="rgb(this);">
</td>
<td>
G
<input type=text size=3 maxlength=3 name="g" value="0" onBlur="rgb(this);">
</td>
<td>
B
<input type=text size=3 maxlength=3 name="b" value="0" onBlur="rgb(this);">
</td>