slider multiple jquery ui - HTML/CSS - Programmation
Marsh Posté le 13-02-2014 à 15:53:04
Bonjour,
De mémoire dans l'objet slide tu as une callback appelé lors d'une modification.
Du coup, si Slide A bouge et vaut a, dans la callback tu dis Slide B = b = a * c, et slide C = c = a * b.
Marsh Posté le 13-02-2014 à 16:53:54
Je t'ai fait un truc vite fait, pas fait le troisième slide, mais tu devrais comprendre le principe
Ya surement moyen de faire plus propre par contre
http://jsfiddle.net/afSE5/
Marsh Posté le 14-02-2014 à 01:54:49
Régler A et B en fonction de C c'est le plus compliqué : http://jsfiddle.net/5Wwu3/
En gros, il faut pouvoir deviner A et B en utilisant seulement C, mais comme la relation n'est pas linéaire il faudrait utiliser autre chose que des divisions et des multiplications.
Je suis programmeur et non mathématicien donc j'ai essayé "d'approcher la valeur de C" en faisant varier A et B à l'aide d'une boucle itérative.
Edit :
- Alors, j'ai remplacé l'approximation approximative par une formule qui tient sur une ligne et ça donne : http://jsfiddle.net/5Wwu3/6/
- Sinon sur cette version, je suis parti en live et j'ai commencé à construire un délire mathématique basé sur des règles un peu comme du prolog : http://jsfiddle.net/5Wwu3/5/
Marsh Posté le 16-02-2014 à 21:52:19
il suffit simplement de poser les équations d'une part :
nous avons A,B,C et constante
on sait que
B = A*constante
C = A*B
Donc
C = A*A*constante*B
On peut facilement deviner A à partir de C et B
C = A^2*constante*B
A^2 = C / (constante*B)
A = Math.sqrt(C / (constante*B));
Maintenant à vous de poser le code qui va bien, sachant que lorsqu'on mets les 2 autres champs à jour on ne touche pas à celui qui vient de bouger
Marsh Posté le 17-02-2014 à 11:25:42
merci à tous pour vos réponses,
je vais essayer de mettre en place toutes ces infos!
Marsh Posté le 18-03-2014 à 09:56:53
Bonjour à tous,
j'ai essayé de travailler sur vos différentes solutions mais ça ne fonctionne pas.
J'avais tenter de simplifier les choses dans un premier temps, voici le problème en détail.
Il s'agit toujours de lier 3 sliders entre eux.
Voici les éléments connus :
C = B * A * 50
B = 1 + 0,5 * log (A / 500)
Le résultat se trouve ici :
http://jsfiddle.net/YaSN8/9/
Comme vous le constatez, si je bouge A alors B et C fonctionnent.
Par contre, B est immobile et C fait varier A correctement mais a une relation curieuse avec B (la variation du curseur se fait en priorité sur A, puis sur B quand A est au max).
Dans la fonction de B, j'ai tenté d'exprimer A en fonction de B.
Si B = 1 + 0,5*log(A/500),
alors :
A = 500*exp((B-1)*(ln10/0,5))
je pense que c'est cette formule que je traduis mal en code.
Pouvez-vous me venir en aide svp ?
Marsh Posté le 18-03-2014 à 19:33:10
Dans la console javascript du navigateur, on peut voir que "Uncaught TypeError: Object #<Object> has no method 'ln' ", autrement dit ln n'existe pas sur l'objet Math.
Pour ouvrir la console sous Chrome (sous Windows) : ctrl+maj+j.
Pour ouvrir la console sous Firefox : F12, ou ctrl+maj+k.
Sinon il existe sur tous les navigateurs récents une option dans les menus qui porte un nom plus ou moins évocateur comme Outils de développement/Développement web/etc.
Documentation sur l'objet Math : http://www.w3schools.com/jsref/jsref_obj_math.asp
Marsh Posté le 19-03-2014 à 09:23:10
merci czh,
j'ai remplacé le ln 10 / 0,5 par une valeur approchante.
Il y a toujours un problème. Seul, le slider A fonctionne correctement (les 2 autres sliders s'ajustent en même temps).
Sur B et C par contre, un seul autre slider s'ajuste, je n'arrive pas à comprendre.
http://jsfiddle.net/YaSN8/11/
merci pour votre aide!
Marsh Posté le 10-02-2014 à 14:25:52
Bonjour,
étant débutant en javascript, je souhaite avoir votre aide sur un point particulier.
J'ai 3 variables, appelons les A, B et C
Cest trois variable sont interdépendantes, soit :
A x constante = B
A x B = C
A est compris entre 0 et 1 000
B entre 0 et 2
C entre 0 et 2000.
Mon objectif est de créer 3 slide type http://jqueryui.com/slider/#rangemin
Si je modifie la valeur d'un des slide, les deux autres valeurs sont automatiquement modifiées.
Exemple:
Par défaut, A = 500, B = 1 et C = 500
Si je selectionne 700 en A,
alors B = 1,4 et C = 980
Pouvez-vous m'aider à construire ces 3 slides svp ?
Merci d'avance!