我为实时背景渐变生成器编写了此代码,但不适用于谷歌浏览器,但正在使用Firefox,我在做什么错?



var color1 = document.querySelector(".color1");
var color2 = document.querySelector(".color2");
var body = document.getElementById("gradient");

function doGradient() {
  body.style.background = "linear-gradient(to right, " +
    color1.value +
    "," +
    color2.value +
    ")";
}

color1.addEventListener("input", doGradient)
color2.addEventListener("input", doGradient)

doGradient();

<body id="gradient">
  <h1>Gradient Generator</h1>
  <input class="color1" type="color" name="color1" value="#00ff00">
  <input class="color2" type="color" name="color2" value="#ff0000">
  <h2>CSS Background</h2>
</body>





没有响应或无法在Google Chrome上运行,但可以在Firefox上完美运行

最佳答案

我认为您忘记了在EventListener中调用doGradient。但是在@Jon编辑之后,他添加了调用函数。

color1.addEventListener("input", doGradient())



这样尝试,希望它能解决问题。

编辑:

如果要在选择另一种颜色后应用渐变,则应使用change事件监听器而不是input

10-08 16:12