gpt4 book ai didi

javascript - 如何将随机化器的结果值插入到 html 输入值中? (JavaScript)

转载 作者:行者123 更新时间:2023-12-03 08:25:29 25 4
gpt4 key购买 nike

我正在开发一个背景渐变生成器,可以通过选择两个 HTML 颜色输入之一并手动选择颜色(然后在后台实时显示)或通过单击“随机化”按钮并生成要显示的两种随机 rgb 颜色。

Github repository here.

问题是,当您单击“随机化”时,颜色输入字段的值保持不变,而背景发生变化。我想这样做,以便将生成的每个随机 rgb 颜色的值添加到输入框的内部 html“值”,以便这些框准确显示选择的两种颜色。我无法弄清楚这样做的逻辑。

如果有帮助,这里是颜色随机函数的 JS:

function randomRGB() {
var rgbValues = [];
for(var i = 0; i < 3; i++) {
rgbValues.push(Math.floor(Math.random() * 256));
}
return 'rgb(' + rgbValues[0] + ',' + rgbValues[1] + ',' + rgbValues[2] + ')';
}

function setRandom() {
body.style.background = 'linear-gradient(to right, ' + randomRGB() + ', ' + randomRGB() + ')';
css.textContent = body.style.background + ';';
}

这是 HTML:

<!doctype html>
<html lang="en">
<head>
<title>Gradient Background</title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="style.css">
</head>
<body id = "gradient">
<div class="container">
<h1>Background Generator</h1>
<div class="inputs">
<input class = "color1" type="color" name="color1" value="#B5DDFF">
<input class = "color2" type="color" name="color2" value="#D998FF" id=""><br>
</div>
<button class="random">Randomize</button>
<h2>Current CSS Background</h2>
<h3></h3>
</div>



<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="script.js"></script>
</body>
</html>

如果有什么我可以澄清的,请告诉我,我绝对是 JS 的初学者,我可能没有以最好的方式解释它。

最佳答案

考虑到您的 inputs.inputs 下容器,正如我在您的 github 存储库中看到的那样:

function setRandom() {
const firstRndRGB = randomRGB();
const secondRndRGB = randomRGB();
const inputs = document.getElementsByClassName('inputs');

inputs[0].value = firstRndRGB;
inputs[1].value = secondRndRGB;
body.style.background = 'linear-gradient(to right, ' + firstRndRGB + ', ' + secondRndRGB + ')';
css.textContent = body.style.background + ';';
}

编辑:

因为它必须被插入到 type="color" 中输入,只接受 Hex格式化颜色,我们还必须转换 RGB格式为 Hex格式使用 regex像这样:

function getHexFromRGB(x){
return '#' + x.match(/\d+/g).map(y = z => ((+z < 16)?'0':'') + (+z).toString(16)).join('');
}

然后就去做

inputs[0].value = getHexFromRGB(firstRndRGB);
inputs[1].value = getHexFromRGB(secondRndRGB);

关于javascript - 如何将随机化器的结果值插入到 html 输入值中? (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59975392/

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