Jquery UI slider comment faire une boîte de suivre le gestionnaire?
Je suis en train de créer un div qui doit suivre le gestionnaire comme il est vu ici:
http://m1.dk/Priser/#tab:#calc,#abb
Mon JSfiddle: http://jsfiddle.net/z3xV3/2/
Je veux aussi faire un calcul sur l'INTERFACE utilisateur de la valeur que devrait apparaître dans la boîte.
Voici une illustration de ce que je veux réaliser:
HTML:
<div id="slider"></div>
<input id="sliderValue" />
Jquery:
$(document).ready(function() {
//Pris slider
$("#slider").slider({value:'',min: 0,max: 150,step: 1, range: 'min',
slide: function( event, ui ) {
$( "#amount" ).html( ui.value + ' timer');
}
});
$( "#amount" ).val( "$" + $( "#slider" ).slider( "value" ) );
});
OriginalL'auteur Rails beginner | 2011-12-20
Vous devez vous connecter pour publier un commentaire.
J'espère que c'est l'effet que vous recherchez: http://jsfiddle.net/z3xV3/11/
JS
HTML
CSS
En ce qui concerne meilleur!
OriginalL'auteur
J'ai modifiered votre jsfiddle exemple: http://jsfiddle.net/Dr5UR/
- Je faire usage de la diapositive événement de la curseur.
La diapositive événement a deux arguments:
événement
Cet objet contient plusieurs informations sur l'événement lui-même. Le temps de déclenchement, la touche qui a été enfoncée ou les coordonnées de la souris au moment du déclenchement. Le clientX propriété contient la position, nous devrons définir à l'objet en mouvement.
de l'interface utilisateur
L'objet d'interface utilisateur vient de jQuery UI lui-même. Il fondamentalement juste contient la valeur. En outre, il contient le point d'ancrage qui est utilisé pour traîner trop. Mais vous ne pouvez pas utiliser sa position, à cause de la diapositive événement prend effet avant le point d'ancrage prend son nouveau poste.
La
#slideValue
d'entrée doit avoirposition: absolute;
, car je travail avec la gauche de la position de l'attribut CSS. Vous pouvez également définir lamargin-left
valeur, sans besoin de définir laposition
àabsolute
.OriginalL'auteur
Il est en fait assez facile (et très utile) à transformer cela en un simple plugin jQuery. Comme:
JSFiddle: http://jsfiddle.net/PPvG/huYRL/Notez que j'ai ajouté le support pour déplacer le curseur en saisissant une valeur dans la#sliderValue
.[ Exemple de Code retiré ]
Vous pouvez également choisir de supprimer#sliderValue
de l'HTML et de laisser le plugin en créer un pour vous. Dans ce cas, vous devez réécrire le plugin de sorte qu'il serait appelé sur le curseur, au lieu de#sliderValue
. À mon avis, ce serait beaucoup plus propre solution.Mise à jour
En fonction de vos commentaires (et en relisant votre question), j'ai réécrit le plugin exemple.
Si je comprends bien, vous voulez faire quelques calculs basés sur la valeur de la glissière et d'afficher le résultat de ces calculs dans l'étiquette en dessous de la poignée du curseur. Les éléments suivants doivent rendre vraiment facile.
JSFiddle: http://jsfiddle.net/PPvG/q5qg7/
HTML
Plugin
Utilisation
Comme vous pouvez le voir, le plugin est maintenant appelé le curseur lui-même. Vous pouvez maintenant fournir le plugin avec un rappel, qui permet de faire quelques calculs et de retourner correctement mis en forme de l'étiquette (le HTML est autorisé).
Dans l'exemple ci-dessus, la fonction de rappel prend tout simplement le
value
qui est transmis à la callbackand ajoute'%'
.jsfiddle.net/VnAXZ/4 - Étrange lors de la première utilisation faites glisser la poignée vers la droite puis vers la gauche, la largeur des changements..
oui, j'avais remarqué cet étrange comportement. Pour une raison quelconque,
handle.offset()
renvoie des valeurs différentes lors du déplacement de la poignée gauche que lorsque le déplacement vers la droite. Elle est désactivée par5px
. Je vais essayer d'avoir un regard sur le curseur plugin code source plus tard, quand j'aurai un peu plus de temps.OriginalL'auteur
Voici un exemple de travail pour un curseur avec deux poignées
CSS:
OriginalL'auteur
HTML:
CSS:
jQuery:
http://jsfiddle.net/yBfTy/4/
OriginalL'auteur
Il serait bien de prendre un coup d'oeil à des solutions de rechange avec des plugins jQuery comme:
http://craigsworks.com/projects/qtip2/demos/#ui-slider
http://www.filamentgroup.com/lab/update_jquery_ui_slider_from_a_select_element_now_with_aria_support/
OriginalL'auteur
De prendre votre jsfiddle.
HTML:
CSS:
#sliderValue{width:50px;}
Jquery:
OriginalL'auteur
Vous pouvez juste: http://jsfiddle.net/z3xV3/21/
La diapositive de callback qui est appelée à chaque fois que vous déplacez votre poignée:
offsetLeft
est le décalage de la poignée.$( "#sliderValue" )
est à votre entrée.OriginalL'auteur