J'utilise le widget curseur jQuery UI (1.8) pour permettre à l'utilisateur de faire défiler une série d'icônes horizontalement. Parfois, je veux déplacer le curseur et programatically la bonne façon de le faire est en modifiant l'option « valeur », comme ceci:Animer la poignée du curseur lors de la modification de l'option de valeur du curseur de l'interface utilisateur jQuery?
$("#content-slider").slider("option", "value", 37);
Le mouvement de la poignée du curseur est instantanée bien. J'aimerais que la motion soit animée. Cela peut se faire à un niveau inférieur, en animant la « gauche » propriété CSS de la poignée, comme ceci:
$(".ui-slider-handle").animate({ left: position, easing: 'swing' }, 450);
... mais si je le fais, je viens de définir la propriété gauche du CSS la poignée. La valeur réelle du curseur n'est pas affectée. Donc, je pensais que l'ajout d'un rappel à la fin de l'animation où la valeur est définie, quelque chose comme ceci:
Lorsque je tente le code ci-dessus (avec le rappel) je reçois une erreur jQuery au sujet trop récursion , donc je pense que ce n'est pas un bon moyen d'accomplir ce que je veux (code moche).
Y a-t-il un meilleur moyen d'animer la poignée du curseur lorsque la valeur du curseur est modifiée par programmation?
Merci d'avance! /Thomas Kahn
J'ai déjà l'option « Animer: true » activé et le curseur est animé quand Je clique sur la barre de curseur. Mais si je modifie la valeur par programmation en modifiant l'option, le mouvement de la poignée du curseur n'est pas animé - il saute juste à la nouvelle position. – tkahn
@tkahn - sa démo le change via '.slider ('value', newValue)' ... –
Aha! En regardant la démo, je vois qu'ils n'utilisent pas "option", ils définissent la nouvelle valeur comme ceci: $ ("selector"). Slider ('value', 100); et quand vous utilisez cette syntaxe, il s'anime! Merci Yi Jiang! – tkahn