JavaScript 如何通过选色器选择背景色

JavaScript 如何通过选色器选择背景色

在使用HTML和CSS创建网页时,我们需要从颜色选择器中选择一种颜色。此外,有时我们可能需要通过颜色选择器的输入来选择背景颜色。

在本教程中,我们将学习不同的方法,这些方法允许用户从取色器输入中选择背景颜色,当用户选择一种新的颜色时,应该改变背景颜色。

使用颜色选择器来改变背景颜色

在HTML中,颜色选择器输入允许用户从中选择一种颜色。我们可以使用输入的value属性来获得一个选定的颜色值。

语法

用户可以按照下面的语法,根据取色器上的选定值来改变背景颜色。

Document.body.style.backgroundColor = color.value;

我们在上面的语法中访问文档和正文样式对象,并改变其’backgroundColor‘属性。

示例

在下面的例子中,我们已经创建了输入并添加了颜色类型。因此,输入将作为一个颜色选择器工作。用户可以从颜色选择器中选择任何颜色,然后点击 “改变颜色 “按钮来调用selectColor()函数。

selectColor()函数根据从选色器中选择的最新值改变文档主体的背景颜色。

<html>
<head>
   <style>
      button {
         font-size: 1.2rem;
         border-radius: 10px;
         margin: 20px;
         border: 2px solid blue;
         color: red;
      }
   </style>
</head>
<body>
   <h2>Use the <i>color picker</i> to change a background color via color picker</h2>
   <input id = "colorInput" type = "color">
   <button onclick = "selectColor()"> Change the color </button>
   <script>
      function selectColor() {
         let color = document.getElementById('colorInput');
         // changing the background color
         document.body.style.backgroundColor = color.value;
      }
   </script>
</body>
</html>

使用输入事件

JavaScript包含了太多的事件。我们将使用输入事件来检测颜色选择器中的最新事件。我们将在JavaScript中通过id访问颜色输入,并调用addEventListener()方法。

我们将把’input’作为addEventListener()方法的第一个参数,把回调函数作为第二个参数,以根据用户从颜色选择器中选择的颜色来改变主体的背景颜色。

语法

用户可以按照下面的语法来使用输入事件,通过颜色选择器来改变背景颜色。

colorInput.addEventListener('input', () => {
   document.body.style.backgroundColor = color.value;
})

示例

在这个例子中,我们创建了颜色选择器输入,它的id是”colorInput“。 我们在JavaScript中通过它的id访问输入元素。之后,我们使用addEventListner()方法和样式对象的backgroundColor属性,通过颜色输入来改变主体的背景颜色。

<html>
<body>
   <h2>Using the <i>input event</i> to change a background color via color picker</h2>
   <input id = "colorInput" type = "color">
   <script>
      let colorInput = document.getElementById('colorInput');
      // Whenever the user changes the color, the input event will be called.
      colorInput.addEventListener('input', () =>{
         document.body.style.backgroundColor = colorInput.value;
      });
   </script>
</body>
</html>

使用setting()函数

setInterval()函数允许我们在一个特定的时间间隔后调用一个特定的函数。它把一个回调函数作为第一个参数,把一个以毫秒为单位的时间间隔作为第二个参数。

setInteral()函数在一段时间后调用回调函数。这里,我们将根据回调函数中颜色选择器中的颜色值来改变背景颜色的值。

语法

用户可以按照下面的语法,使用setInterval()函数,从选色器中选择背景颜色。

setInterval(() => {
   document.body.style.backgroundColor = colorValue;
}, 100);

在上述语法中,colorValue是我们从颜色选择器中得到的颜色值。

示例

在下面的例子中,作为setInterval()函数的参数传递的箭头函数将在每100毫秒后被调用。在箭头函数中,我们通过id访问颜色输入,使用value属性获得其颜色值,并将其分配给style对象的‘backgroundColor‘属性。

用户可以在输出中看到,当他们在选色器中改变颜色时,它将立即反映为文档主体的背景颜色。

<html>
<head>
   <style>
      body {
         color: white;
      }
   </style>
</head>
<body>
   <h2>Using the <i>setInterval()</i> function to change a background color via color picker.</h2>
   <input id = "color" type = "color" value = "fff">
   <script>
      // Change color after every 100 seconds
      setInterval(() => {
         let color = document.getElementById('color');
         let colorValue = color.value;
         document.body.style.backgroundColor = colorValue;
      }, 100);
   </script>
</body>
</html>

我们在本教程中学习了三种方法,从取色器中选择一种颜色,并根据其数值改变车身的背景颜色。用户可以使用第二种方法,不用按按钮就能立即改变背景色。

然而,第三个使用setInterval()函数的方法也会在我们从选色器中选取时立即改变背景颜色。但是,即使我们不改变颜色选择器中的值,它也会在每100毫秒后调用。因此,它可能会降低我们应用程序的性能。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程