Je crée un site Web sur lequel je souhaite utiliser le curseur de plage (je sais qu'il ne prend en charge que les navigateurs Webkit).
Je l'ai complètement intégré et fonctionne très bien. Mais je voudrais utiliser un textbox
pour afficher la valeur actuelle de la diapositive.
Je veux dire si initialement le curseur est à la valeur 5, donc dans la zone de texte, il devrait apparaître comme 5, lorsque je fais glisser la valeur dans la zone de texte doit changer.
Puis-je faire cela en utilisant uniquement CSS
ou html
. Je veux éviter JQuery
. C'est possible?
:before
/:after
,content
etattr()
, comme ceci . Cependant, les pseudo-éléments: before /: after mangent en fait une partie de la plage du curseur (bien que cela puisse peut-être être corrigé), et surtout, les valeurs ne sont pas mises à jour si le curseur est manipulé. Néanmoins, j'ai pensé qu'il serait intéressant de laisser cela ici. Cela pourrait devenir possible à l'avenir.Réponses:
Cela utilise javascript, pas jquery directement. Cela pourrait vous aider à démarrer.
la source
code
<label for = "rangeinput"> Range </label> <input id = "rangeinput" type = "range" min = "0" max = "10" value = "5" onchange = "rangevalue.value = value"> </input> <output id = "rangevalue"> 5 </output>Pour ceux qui recherchent toujours une solution sans code javascript séparé. Il y a peu de solution simple sans écrire une fonction javascript ou jquery:
Démo JsFiddle
Si vous souhaitez afficher la valeur dans la zone de texte, changez simplement la sortie en entrée.
Mettre à jour:
Utilisez l'ID ou le nom de l'élément, les deux sont pris en charge dans les navigateurs morden.
la source
version avec entrée modifiable:
http://jsfiddle.net/Xjxe6/
la source
this.nextElementSibling
outhis.previousElementSibling
et remplacez oninput par onchange pour obtenir une version qui fonctionne en dehors d'un formulaire. jsfiddle.net/Xjxe6/94un moyen encore meilleur serait d'attraper l'événement d'entrée sur l'entrée elle-même plutôt que sur le formulaire entier (en termes de performances):
Voici un violon (avec l'
id
ajout selon le commentaire de Ryan).la source
id="amount"
pour la sortie, aussi.oninput="this.form.amount.value=this.value"
Si vous voulez que votre valeur actuelle soit affichée sous le curseur et se déplace avec elle, essayez ceci:
Notez que ce type d'élément d'entrée HTML a une fonctionnalité masquée, telle que vous pouvez déplacer le curseur avec les touches fléchées gauche / droite / bas / haut lorsque l'élément a le focus. La même chose avec les touches Accueil / Fin / PageDown / PageUp.
la source
Si vous utilisez plusieurs diapositives et que vous pouvez utiliser jQuery, vous pouvez effectuer les opérations suivantes pour gérer facilement plusieurs curseurs:
De plus, en utilisant
oninput
sur,<input type='range'>
vous recevrez des événements tout en faisant glisser la plage.la source
Version sans Shortest
form
,min
ou JavaScript externe.la source
Pour les gens qui ne se soucient pas de l'utilisation de jquery, voici un court chemin sans utiliser d'identifiant
la source
J'ai une solution qui implique (Vanilla) JavaScript, mais uniquement en tant que bibliothèque. Vous devez l'inclure une fois, puis tout ce que vous avez à faire est de définir le
source
attribut des entrées numériques.L'
source
attribut doit être lequerySelectorAll
sélecteur de l'entrée de plage que vous souhaitez écouter.Cela fonctionne même avec les selectcs. Et cela fonctionne avec plusieurs auditeurs. Et cela fonctionne dans l'autre sens: changez l'entrée de nombre et l'entrée de gamme s'ajustera. Et cela fonctionnera sur les éléments ajoutés plus tard sur la page (consultez https://codepen.io/HerrSerker/pen/JzaVQg pour cela)
Testé dans Chrome, Firefox, Edge et IE11
la source
la source
Essaye ça :
et dans la section jQuery :
la source
si vous cherchez toujours la réponse, vous pouvez utiliser input type = "number" à la place de type = "range" min max work s'il est défini dans cet ordre:
1-name
2-maxlength
3-size
4-min
5-max
just le copier
la source