以编程方式分配滑块值时无法实现平滑句柄动画 - jQuery UISlider

时间:2011-11-11 19:07:50

标签: jquery uislider

我正在使用jQuery UISlider。我设置它以便在执行事件“slidestop”时(即当用户停止滑动时),一些代码将确定它是否高于或低于滑块范围内的给定值。然后代码确定滑块最接近的给定值集中的哪一个,然后尝试将滑块手柄移动到该点。所有这些基本上都很好。这是我的困境:

手柄没有动画到新位置,而是跳到那里。我正在使用这行代码来移动句柄:

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

其中 newScrollerValue 是逻辑决定需要发送句柄的值。

如果我在与页面上的元素绑定的点击事件中使用相同的代码行,(但为其提供 newScrollerValue 的测试值),则句柄会动画到新位置,因为它应该。但是将其置于 slidestop 事件的回调方法中会使其跳转到新位置而不是平滑动画。

我希望能够清楚地解释清楚。关于如何在 slidestop 事件中以编程方式分配值来实现平滑处理动画的任何想法?

1 个答案:

答案 0 :(得分:0)

在拖动句柄的过程中,可能会在内部禁用动画,看看是否可以在事件触发后在新的上下文中执行操作:

$("#navScroller").bind("slidestop", function (event, ui) {
   setTimeout(function () {
     //perform the required logic here
     $("#navScroller").slider('value', newScrollerValue);
   },10);
});