gpt4 book ai didi

JavaScript body.style.background 在 script.js 中不使用线性渐变,但在控制台中工作正常

转载 作者:行者123 更新时间:2023-12-02 14:53:47 25 4
gpt4 key购买 nike

body.style.background = not working in script.js included file 其他一切正常 兑现的 dom 选择器工作输入 body.style.background = 'red';有效但不在包含的文件中

我已经按照下面的代码中的描述尝试了 console.logs,输出的异常是如果我从回调中复制日志并将其粘贴到 body.style.background 它可以工作但不在脚本文件中。

color_1 = document.querySelector("#color-1");
color_2 = document.querySelector("#color-2");
body = document.querySelector("body");

function changeBackgroundColor() {
body.style.background = "linear-gradient(to right, "+color_1.value+ ", "+ color_2.value+");";

//************* I am getting the console.logs but the background's not changing

console.log("linear-gradient(to right, " + color_1.value + ", " + color_2.value + ");");
}

//************* Both the listeners work fine and the cashed selectors

color_1.addEventListener("input", changeBackgroundColor);
color_2.addEventListener("input", changeBackgroundColor);
<html>
<head>
<title>Background Color Generator</title>

<!-- Custom Styles -->
<style type="text/css">
body {
background: linear-gradient(to right, red , yellow);
}
</style>

</head>

<body>
<div class="container">
<input id="color-1" type="color">
<input id="color-2" type="color">
</div>

</body>
</html>

当颜色输入改变时背景应该改变颜色但没有任何反应。

最佳答案

为了像这样通过 JavaScript 执行线性渐变,您需要访问 body.style.backgroundImage 属性。然后,您可以传入 linear-gradient 字符串来构建渐变。

function changeBackgroundColor() {
body.style.backgroundImage = "linear-gradient(to right, "+ color_1.value +", "+ color_2.value +")";

还有一个小提示,无论何时传递字符串(在这种情况下或任何时候以这种方式设置 CSS 属性),您都不需要提供尾随 ; 那个 CSS期望。所以你有这条线:

"linear-gradient(to right, "+ color_1.value +", "+ color_2.value +");";

注意第一个 ; 你在那里。它应该被删除以留给你这个字符串:

"linear-gradient(to right, "+ color_1.value +", "+ color_2.value +")";

您可以在 MDN 上找到一些示例:
https://developer.mozilla.org/en-US/docs/Web/CSS/background-image

在 W3Schools 上:
https://www.w3schools.com/jsref/prop_style_backgroundimage.asp

关于JavaScript body.style.background 在 script.js 中不使用线性渐变,但在控制台中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54110082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com