Czy można zrobić suwak HTML5 z dwiema wartościami wejściowymi, na przykład w celu wybrania przedziału cenowego? Jeśli tak, jak można to zrobić?
102
Nie, dane wejściowe z zakresu HTML5 przyjmują tylko jedno dane wejściowe. Zalecałbym użycie czegoś takiego jak suwak zakresu interfejsu użytkownika jQuery do tego zadania.
Od jakiegoś czasu szukałem lekkiego, wolnego od zależności podwójnego suwaka (importowanie jQuery tylko w tym celu wydawało się szalone) i wydaje się, że nie ma tam wielu. Skończyło się na tym, że trochę zmodyfikowałem kod @ Wildhoney i bardzo mi się to podoba.
Pokaż fragment kodu
źródło
Spóźnianie się , ale noUiSlider unika zależności jQuery-ui, czego nie ma zaakceptowana odpowiedź. Jedynym „zastrzeżeniem” jest obsługa IE dla IE9 i nowszych, jeśli starsza wersja IE jest dla Ciebie rozwiązaniem.
Jest również darmowy, open source i może być używany w projektach komercyjnych bez ograniczeń.
Instalacja: Pobierz noUiSlider, wyodrębnij plik CSS i JS gdzieś w systemie plików witryny, a następnie połącz z CSS z nagłówka i do JS z treści:
Przykładowe użycie: tworzy suwak, który przesuwa się od 0 do 100 i zaczyna od wartości 20-80.
HTML:
JS:
źródło
Oczywiście możesz po prostu użyć dwóch suwaków nakładających się na siebie i dodać trochę javascript (właściwie nie więcej niż 5 linii), że selektory nie przekraczają wartości min / max (jak w rozwiązaniu @Garys).
W załączeniu znajdziesz krótki fragment zaadaptowany z aktualnego projektu, w tym styl CSS3, pokazujący, co możesz zrobić (tylko webkit). Dodałem również kilka etykiet, aby wyświetlić wybrane wartości.
Używa JQuery, ale wersja vanillajs nie jest magiczna.
źródło
Właściwie użyłem mojego skryptu bezpośrednio w html. Ale w javascript, kiedy dodajesz detektor zdarzeń oninput dla tego zdarzenia, dane są przekazywane automatycznie. Wystarczy przypisać wartość zgodnie z wymaganiami.
źródło