2017-10-05 2 views
4

Ich habe eine einfache HTML-Bereich Eingangskomponente und ich möchte die Spur in drei verschiedene Teile teilen. Ich habe einen Bereich von 0 bis 75 in der Komponente. Ich würde gerne 0 bis 25 als grün, 26 bis 50 als gelb und 51 bis 75 als rot unabhängig vom Eingabewert stylen, dh die Farben sind konstant. Ist es möglich? Hier ist die Arbeits jsfiddleHTML-Bereich Eingabespur Teile teilen

var p = document.getElementById("price"), 
 
    res = document.getElementById("result"); 
 

 
p.addEventListener("input", function() { 
 
    res.innerHTML = p.value; 
 
}, false);
<div style="margin-top: 1em"> 
 
    <h2>Price</h2> 
 
    0<input id="price" type="range" min="0" max="75" value="" />75 
 
</div> 
 

 
<p id="result"></p>

enter image description here

+0

Werfen Sie einen Blick auf diese: https://codepen.io/gabrieltomescu/pen/GsbIi Oder ist das zu kompliziert für Ihre Aufgabe? – Nebulosar

+0

@Nebulosar Ich habe dieses Beispiel bereits gesehen, und es ist nicht genau das, wonach ich suche. Ich möchte nicht, dass die Farben sich überlappen –

+0

Releated? - https://stackoverflow.com/questions/29373277/how-to-change-the-color-of-track-for-range-input-using-jquery-javascript –

Antwort

5

Mit einem linear-gradient Hintergrund

body { 
 
text-align:center; 
 
} 
 

 
#range::-webkit-slider-runnable-track { 
 
    width: 300px; 
 
    height: 10px; 
 
    background: linear-gradient(to right, green, green 25%, yellow 25%, yellow 50%, red 51%); 
 
    border: none; 
 
    border-radius: 3px; 
 
} 
 

 
#range::-moz-range-track { 
 
    width: 300px; 
 
    height: 10px; 
 
    background: linear-gradient(to right, green, green 25%, yellow 25%, yellow 50%, red 51%); 
 
    border: none; 
 
    border-radius: 3px; 
 
}
<input id="range" type="range">

+0

In FF55 ist der Gradient ziemlich breit, wobei der ziehbare Teil nur von einem gelben auf halbwegs rot wechselt :) – Martijn

+0

Vielleicht ist aber das ** Prinzip ** der Punkt. –

+0

Es scheint sich um ein Margin-Problem gehandelt zu haben ... behoben. –

Verwandte Themen