根据滑块值更改 div
change div based on slider value
正在尝试根据滑块的位置触发功能。我尝试了几种不同的方法。我在这里错过了什么?这是我的代码(如下)。
Html
<div id="box">Box</div>
<form oninput="amount.value=rangeInput.value">
<input type="range" id="rangeInput" name="rangeInput" step="20" value="0" onchange="updateValue()">
<div align="center" style="font-size:25px;">
<output name="amount" for="rangeInput">0</output>
</div>
</form>
这是CSS
#box{
position:absolute;
width:100px;
height:100px;
background:#ffffff;}
input[type="range"] {
-webkit-appearance: none;
width: 600px;
height: 25px;
border: 1px solid;
background-color: #555555;
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
width: 25px;
height: 25px;
border: 1px solid;
background-color: #FFF;
z-index:6000;
}
这是javascript
slider.oninput = function() {
output.innerHTML = this.value;
}
function updateValue() {
var rangeInput = document.getElementById("myRange").value
if (rangeInput == 20) {
$("#box").css({'background':'red'});
}
if (rangeInput == 40) {
$("#box").css({'background':'blue'});
}
if (rangeInput == 60) {
$("#box").css({'background':'pink'});
}
if (rangeInput == 80) {
$("#box").css({'background':'green'});
}
}
我不知道我做错了什么。
看来基本可以了。我在这里做的唯一重要的事情是将 document.getElementById("myRange").value
更改为 document.getElementById("rangeInput").value
.
// slider.oninput = function() {
// output.innerHTML = this.value;
// }
function updateValue() {
var rangeInput = document.getElementById("rangeInput").value
if (rangeInput == 20) {
$("#box").css({'background':'red'});
}
if (rangeInput == 40) {
$("#box").css({'background':'blue'});
}
if (rangeInput == 60) {
$("#box").css({'background':'pink'});
}
if (rangeInput == 80) {
$("#box").css({'background':'green'});
}
}
#box{
position:absolute;
width:100px;
height:100px;
background:#ffffff;}
input[type="range"] {
-webkit-appearance: none;
width: 600px;
height: 25px;
border: 1px solid;
background-color: #555555;
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
width: 25px;
height: 25px;
border: 1px solid;
background-color: #FFF;
z-index:6000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="box">Box</div>
<form oninput="amount.value=rangeInput.value">
<input type="range" id="rangeInput" name="rangeInput" step="20" value="0" oninput="updateValue()">
<div align="center" style="font-size:25px;">
<output name="amount" for="rangeInput">0</output>
</div>
</form>
编辑:将 onchange="updateValue()"
更改为 oninput="updateValue()"
使其在移动时更新,而不是在鼠标抬起时更新。
只需删除 slider.oninput
或将其放在代码底部,因为它会覆盖 onchange 事件。
function updateValue() {
var rangeInput = document.getElementById("myRange").value
if (rangeInput == 20) {
$("#box").css({'background':'red'});
}
if (rangeInput == 40) {
$("#box").css({'background':'blue'});
}
if (rangeInput == 60) {
$("#box").css({'background':'pink'});
}
if (rangeInput == 80) {
$("#box").css({'background':'green'});
}
}
slider.oninput = function() {
output.innerHTML = this.value;
}
正在尝试根据滑块的位置触发功能。我尝试了几种不同的方法。我在这里错过了什么?这是我的代码(如下)。 Html
<div id="box">Box</div>
<form oninput="amount.value=rangeInput.value">
<input type="range" id="rangeInput" name="rangeInput" step="20" value="0" onchange="updateValue()">
<div align="center" style="font-size:25px;">
<output name="amount" for="rangeInput">0</output>
</div>
</form>
这是CSS
#box{
position:absolute;
width:100px;
height:100px;
background:#ffffff;}
input[type="range"] {
-webkit-appearance: none;
width: 600px;
height: 25px;
border: 1px solid;
background-color: #555555;
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
width: 25px;
height: 25px;
border: 1px solid;
background-color: #FFF;
z-index:6000;
}
这是javascript
slider.oninput = function() {
output.innerHTML = this.value;
}
function updateValue() {
var rangeInput = document.getElementById("myRange").value
if (rangeInput == 20) {
$("#box").css({'background':'red'});
}
if (rangeInput == 40) {
$("#box").css({'background':'blue'});
}
if (rangeInput == 60) {
$("#box").css({'background':'pink'});
}
if (rangeInput == 80) {
$("#box").css({'background':'green'});
}
}
我不知道我做错了什么。
看来基本可以了。我在这里做的唯一重要的事情是将 document.getElementById("myRange").value
更改为 document.getElementById("rangeInput").value
.
// slider.oninput = function() {
// output.innerHTML = this.value;
// }
function updateValue() {
var rangeInput = document.getElementById("rangeInput").value
if (rangeInput == 20) {
$("#box").css({'background':'red'});
}
if (rangeInput == 40) {
$("#box").css({'background':'blue'});
}
if (rangeInput == 60) {
$("#box").css({'background':'pink'});
}
if (rangeInput == 80) {
$("#box").css({'background':'green'});
}
}
#box{
position:absolute;
width:100px;
height:100px;
background:#ffffff;}
input[type="range"] {
-webkit-appearance: none;
width: 600px;
height: 25px;
border: 1px solid;
background-color: #555555;
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
width: 25px;
height: 25px;
border: 1px solid;
background-color: #FFF;
z-index:6000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="box">Box</div>
<form oninput="amount.value=rangeInput.value">
<input type="range" id="rangeInput" name="rangeInput" step="20" value="0" oninput="updateValue()">
<div align="center" style="font-size:25px;">
<output name="amount" for="rangeInput">0</output>
</div>
</form>
编辑:将 onchange="updateValue()"
更改为 oninput="updateValue()"
使其在移动时更新,而不是在鼠标抬起时更新。
只需删除 slider.oninput
或将其放在代码底部,因为它会覆盖 onchange 事件。
function updateValue() {
var rangeInput = document.getElementById("myRange").value
if (rangeInput == 20) {
$("#box").css({'background':'red'});
}
if (rangeInput == 40) {
$("#box").css({'background':'blue'});
}
if (rangeInput == 60) {
$("#box").css({'background':'pink'});
}
if (rangeInput == 80) {
$("#box").css({'background':'green'});
}
}
slider.oninput = function() {
output.innerHTML = this.value;
}