HTML5 type d'entrée plage afficher la plage de valeur
Je fais un site web où je veux utiliser le curseur de plage(je sais il ne prend en charge les navigateurs webkit).
J'ai intégré pleinement et fonctionne très bien. Mais je tiens à utiliser une zone de texte pour afficher la diapositive en cours valeur.
Je veux dire si, initialement, le curseur est à la valeur de 5, donc dans la zone de texte, elle doit démontrer que le 5, quand je glisse la valeur dans la zone de texte doit changer.
Puis-je faire cela en utilisant uniquement CSS ou html. Je veux éviter de JQuery. Est-il possible?
- Vous ne pouvez pas le faire sans javascript.
- Vous pouvez presque faire avec css à l'aide
:before
/:after
,content
etattr()
, comme ceci. Cependant, l' :avant:après les pseudo-éléments de fait manger le curseur de la gamme (même si c'est peut-être réparable), et, plus important encore, les valeurs ne sont pas mises à jour si le curseur est manipulé. Néanmoins, j'ai pensé qu'il serait intéressant de laisser ici. Il pourrait être possible dans le futur. - Fixation @waldir 's les résultats de la solution de jsfiddle.net/RjWJ8 si elle utilise javascript pour mettre à jour la valeur de l'attribut de la propriété.
Vous devez vous connecter pour publier un commentaire.
Ce utilise du javascript, pas jquery directement. Il pourrait vous aider à démarrer.
JS:
HTML:
code
<label for="rangeinput">Plage</label> <input id="rangeinput" type="range" min="0" max="10" value="5" onchange="rangevalue.valeur=valeur"></input> <sortie id="rangevalue">5</sortie>Pour ceux qui sont toujours à la recherche d'une solution sans un code javascript distinct. Il y a peu de solution facile sans l'écriture d'un script javascript ou jquery fonction:
JsFiddle Démo
Si vous souhaitez afficher la valeur dans la zone de texte, il suffit de changer la sortie vers l'entrée.
Mise à jour:
Soit l'utilisation de l'élément d'Id ou nom, les deux sont pris en charge dans morden navigateurs.
version avec entrée modifiable:
http://jsfiddle.net/Xjxe6/
this.nextElementSibling
outhis.previousElementSibling
et remplacer oninput avec onchange pour obtenir une version qui fonctionne en dehors d'un formulaire. jsfiddle.net/Xjxe6/94une meilleure façon de le faire serait d'attraper l'événement d'entrée sur l'entrée elle-même
plutôt que sur l'ensemble de la forme (performance sage) :
Voici un violon (avec le
id
ajouté par Ryan commentaire).id="amount"
pour la sortie, trop.oninput="this.form.amount.value=this.value"
Si vous voulez que votre valeur actuelle pour être affiché sous le curseur et déplace le long avec elle, essayez ceci:
HTML:
Noter que ce type d'entrée HTML élément a une fonction cachée, comme vous pouvez déplacer le curseur gauche/droite/haut/bas touches de direction lors de l'élément a le focus sur elle. Le même à la Maison/à la Fin/PageDown/PageUp clés.
Si vous utilisez plusieurs diapositives, et vous pouvez les utiliser jQuery, vous pouvez faire le suivi de traiter avec plusieurs curseurs facilement:
JS:
CSS:
HTML:
Aussi, en utilisant
oninput
sur le<input type='range'>
vous allez recevoir des événements tout en faisant glisser la gamme.HTML:
J'ai une solution qui implique (Vanille) en JavaScript, mais seulement comme une bibliothèque. Vous habe d'inclure une seule fois, et puis tout ce que vous devez faire est de définir les
source
attribut du nombre d'entrées.La
source
attribut doit être lequerySelectorAll
sélecteur de la plage d'entrée que vous souhaitez écouter.Il fonctionne même avec selectcs. Et il fonctionne avec de nombreux auditeurs. Et ça marche dans l'autre sens: changer le nombre d'entrée et de la plage d'entrée réglage. Et il va travailler sur des éléments ajoutés plus tard sur la page (à vérifier https://codepen.io/HerrSerker/pen/JzaVQg pour qu')
Testé dans Chrome, Firefox, Edge et IE11
JS:
HTML:
si vous toujours à la recherche de la réponse que vous pouvez utiliser input type="number" à la place du type="range" min max de travail si elle a mis dans cet ordre:
1-nom
2-maxlength
3-la taille de l'
4-min
5-max
il suffit de copier le