HTML colorpicker 改变时如何获取新值?

How can I get the new value of HTML colorpicker when it changes?

我正在开发一个网络应用程序,需要根据 colorpicker 的值更改 HTML canvas 的颜色。

我在 HTML 中有一个 colorpicker,我需要在每次更新时从中获取 value

<input type="color" value="#ff0800" id="color">

目前,这是与我的 javascript 文件中的 colorpicker 关联的代码。

var backRGB = document.getElementById("color").value;

我真的不确定这是如何实现的。

我试过其他堆栈交换问题,但 none 确实满足我的要求,所以如果有人能告诉我如何实现,我将不胜感激。

纯javascript的解决方案:

//收听 "change event" 附加到您的颜色输入

document.getElementById("color").addEventListener("change", onChangeColor);

输入值更改后触发的函数:

function onChangeColor() {

   console.log(this.value); //this.value contains the hexadecimal value of your input
   //change your canvas color

}

更改canvas颜色检查here

您只需要在 colorpicker 值更改时更新 backRGB 变量的值。

为此,您需要将处理程序附加到 colorpickeronchange 事件:

document.getElementById("color").onchange = function() {
  backRGB = this.value;
}

演示:

这是一个工作演示:

var backRGB = document.getElementById("color").value;

document.getElementById("color").onchange = function() {
  backRGB = this.value;
  console.log(backRGB);
}
<input type="color" value="#ff0800" id="color">

除了已经给出的答案之外,我们还可以附加 oninput 事件处理程序而不是 onchange 事件。这是我们可以监视来自用户的颜色选择器事件的另一种方式。

此事件类似于 onchange 事件。区别在于 oninput 事件在元素的值改变后立即发生,而 onchange 在元素失去焦点时发生,在内容之后已经变了。另一个区别是 onchange 事件也适用于元素。这是一个例子:

const backRGB = document.querySelector(".backRCB");
const color = document.querySelector(".color");

color.addEventListener("input",(event)=>{
   backRGB.style.backgroundColor = color.value;
   // You can also do it with the event object as event object holds the value of the current color
   //  backRGB.style.backgroundColor = event.target.value;
});

希望对很多用户有所帮助。