Dies ist ein Versuch, das mit vanille JS ausgewählte Eingabefeld anzuzeigen, könnte nur daran denken, Hintergrundfarben zu ändern.Warum die Eingangsnummer die Farbe nicht "verschiebt"?
Als Anfänger weiß ich nicht, ob ich es die beste Struktur mache. Hört sich aber leichter an, in meinem persönlichen Projekt werden noch mehr Felder sein.
Jetzt muss ich nur die Funktion halten eine Farbe zu einer Zeit und nicht alle auf einmal zu wählen. Ich habe viele Versuche mit bedingten Anweisungen und Unterfunktionen unternommen, aber bisher keinen Erfolg.
pointer/selector image for index JS fiddle
var sel = document.querySelectorAll("input.arr");
var rcvVal = document.getElementById("ini");
var ini = document.getElementById("ini");
var arrLength = document.getElementsByClassName("arr");
ini.addEventListener("click", selector, true);
function selector() {
var current = rcvVal.value - 1; //-1 for position 0
if (rcvVal.value - 1 == current) {
sel[rcvVal.value - 1].style.background = "#0D0";
}else{
for (var i = 0; i <= arrLength.length; i++) {
sel[i].style.background = "lightblue";//go back to page previous/default color
}
}
document.getElementById("demo").innerHTML = "position: " + rcvVal.value + "/"+arrLength.length;
//check position/length
}
selector(); //First run
input {
width: 50px;
background: lightblue;
/*default color*/
border-style: none;
opacity: 1;
}
input[type=number]::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
opacity: 1;
padding:3px 3px;
}
Move one green color among input fields <br>
<input style=background:#E70; type="number" value="3" id="ini" class="first" min="1" max="5"> Selector
<br>
<br>
<input type="number" value="10" class="arr">
<input type="number" value="20" class="arr">
<input type="number" value="30" class="arr">
<input type="number" value="40" class="arr">
<input type="number" value="50" class="arr">
<p id="demo"></p>
Dieses Beispiel war einfach zu verstehen und zu implementieren, dauerte einige Sekunden in meinem Projekt zu beheben. Und für die Standardfarbe funktionierte diese Zeile auch gut: style.background = ""; –