设计一个网页,网页里有个滑条,滑动滑条能将当前滑条的值发送给esp8266
时间: 2024-03-17 20:47:54 浏览: 68
好的,以下是一个简单的示例代码,可以实现在网页中通过滑块的值来控制ESP8266的亮度。
HTML代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ESP8266 LED Control</title>
<style type="text/css">
.slider {
-webkit-appearance: none;
width: 50%;
height: 20px;
background: #ddd;
outline: none;
opacity: 0.7;
-webkit-transition: opacity .2s;
transition: opacity .2s;
}
.slider:hover {
opacity: 1;
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 20px;
height: 20px;
background: #4CAF50;
cursor: pointer;
}
.slider::-moz-range-thumb {
width: 20px;
height: 20px;
background: #4CAF50;
cursor: pointer;
}
</style>
</head>
<body>
<h1>ESP8266 LED Control</h1>
<input type="range" min="0" max="255" value="0" class="slider" id="brightnessSlider">
<p>Brightness: <span id="brightnessValue">0</span></p>
<script>
var slider = document.getElementById("brightnessSlider");
var output = document.getElementById("brightnessValue");
output.innerHTML = slider.value;
slider.oninput = function() {
output.innerHTML = this.value;
sendBrightness(this.value);
}
function sendBrightness(value) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log("Brightness set to: " + value);
}
};
xhttp.open("GET", "/brightness?value=" + value, true);
xhttp.send();
}
</script>
</body>
</html>
```
这段HTML代码中,使用了一个input元素的type属性为range,实现了一个滑块控件,并加上了一些CSS样式,让滑块看起来更美观。滑块的值被绑定到了一个span元素中,可以实时显示当前的滑块值。
在JavaScript代码中,通过getElementById方法获取到滑块和span元素,然后绑定oninput事件,当滑块的值发生改变时,会调用sendBrightness函数,并将当前的滑块值作为参数传递给该函数。
sendBrightness函数中,使用XMLHttpRequest对象向ESP8266发送一个GET请求,参数为当前滑块的值。在ESP8266的代码中,可以通过解析该请求中的参数值,并将其作为LED的亮度。
阅读全文