Не удается добиться плавной анимации ручки при программном назначении значения ползунка - jQuery UISlider

Я использую JQueryUISlider. Я настроил его так, что при выполнении события «слайдстоп» (т. е. когда пользователь перестает скользить) некоторый код будет определять, выше или ниже заданное значение в диапазоне ползунка. Затем код определяет, к какому из заданных значений ползунок ближе всего, а затем пытается переместить ручку ползунка в эту точку. Все это по существу работает нормально. вот моя дилемма:

Ручка не анимируется в новое место, а прыгает туда. Я использую эту строку кода для перемещения ручки:

$("#navScroller").slider('value', newScrollerValue);

где newScrollerValue — это значение, которое логика определила для отправки дескриптора.

Если я использую ту же строку кода в событии щелчка, привязанном к элементу на странице (но присвоив ему тестовое значение для newScrollerValue), дескриптор анимируется в новом месте, как и должно быть. Но размещение его в методе обратного вызова для события slidestop приводит к переходу в новое место, а не к плавной анимации.

Я надеюсь, что это объясняет это достаточно ясно. Любые мысли о том, что я мог бы сделать, чтобы добиться плавной анимации ручки для программно назначенного значения в событии slidestop?


person Ribs    schedule 11.11.2011    source источник


Ответы (1)


Анимация может быть отключена внутри во время перетаскивания дескриптора, посмотрите, сможете ли вы выполнить действие в новом контексте после срабатывания события:

$("#navScroller").bind("slidestop", function (event, ui) {
   setTimeout(function () {
     //perform the required logic here
     $("#navScroller").slider('value', newScrollerValue);
   },10);
});
person Steve Lewis    schedule 11.11.2011
comment
Большое спасибо за быстрый ответ. Это была именно проблема, и теперь все работает отлично! - person Ribs; 11.11.2011