gpt4 book ai didi

Arduino 上的 Html(获取)表单 RGB 选择器

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:25 25 4
gpt4 key购买 nike

元素

我正在制作一个基于 Arduino 的 RGB-Ledstrip Controller 。我目前的硬件正在运行,但我希望通过托管在 Arduino 上的页面(理想情况下)使其可控。

问题

我的 Arduino 目前可以生成此 HTML,但是,如果用户有某种类型的反馈,它会很实用。

<!DOCTYPE html>
<html>
<body>
<form method="get" action="?">
R <input type="range" name="R" value="0" min="0" max="255"></br>
G <input type="range" name="G" value="0" min="0" max="255"></br>
B <input type="range" name="B" value="0" min="0" max="255"></br>
<div style="width:100px;height:100px; background:#f00;"></div>
<input type="submit" value="Send color">
</form>
</body>
</html>

我正在寻找一种显示所选颜色的方法。理想情况下,它应该使正方形按照 slider 设置的方式着色。所以,如果我能得到当前的 slider 值并将它们作为背景颜色,我就会被设置。

但是,据我所知,这根本不是 HTML 的工作方式。

问题

  • 我可以使用 CSS 获取当前 slider 值并将其应用为框的颜色吗?

我尝试过的

我最擅长的是:

<!DOCTYPE html>
<html>
<body>
<form method="get" action="?">
R <input type="range" id="R" name="R" value="0" min="0" max="255"></br>
G <input type="range" id="G" name="G" value="0" min="0" max="255"></br>
B <input type="range" id="B" name="B" value="0" min="0" max="255"></br>
<div style="width:100px;height:100px; background: rgb(attr(R), attr(G),attr(B));"></div>
<input type="submit" value="Send color">
</form>
</body>
</html>

但它根本不解析“rgb()”函数。我想我很接近,但还没有。

请注意,Arduino 的内存非常有限,这就是为什么我尽量减少它的原因。它可以用 Javascript 轻松完成,使用精美的色轮等。但这可能会占用太多字节的内存。

最佳答案

由于在纯 HTML/CSS 中无法实现,我创建了一个 javascript,使用提供的 HTML 代替,因为这是我所知道的唯一解决方案。

<form method="get" action="?">
R <input type="range" id="r" name="R" value="0" min="0" max="255">
G <input type="range" id="g" name="G" value="0" min="0" max="255">
B <input type="range" id="b" name="B" value="0" min="0" max="255">
<div id="color" style="width:100px;height:100px;"></div>
<input type="submit" value="Send color">
</form>

当范围发生变化并相应地编辑预览框颜色时,脚本会简单地采用不同的范围值。

var inputs=document.getElementsByTagName('input'),
i=0,
color = document.getElementById('color');
do{
switch(inputs[i].type){
case 'range':
inputs[i].addEventListener('change', onChange)
break;
}
}
while(inputs[++i])

function onChange(){
var r = document.getElementById('r').value,
g = document.getElementById('g').value,
b = document.getElementById('b').value;

color.style.background = "rgb("+r+","+g+","+b+")";
}

我创建了一个 fiddle供引用。

关于Arduino 上的 Html(获取)表单 RGB 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39699027/

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