我正在使用jQuery UISlider。我设置它以便在执行事件“slidestop”时(即当用户停止滑动时),一些代码将确定它是否高于或低于滑块范围内的给定值。然后代码确定滑块最接近的给定值集中的哪一个,然后尝试将滑块手柄移动到该点。所有这些基本上都很好。这是我的困境:
手柄没有动画到新位置,而是跳到那里。我正在使用这行代码来移动句柄:
$("#navScroller").slider('value', newScrollerValue);
其中 newScrollerValue 是逻辑决定需要发送句柄的值。
如果我在与页面上的元素绑定的点击事件中使用相同的代码行,(但为其提供 newScrollerValue 的测试值),则句柄会动画到新位置,因为它应该。但是将其置于 slidestop 事件的回调方法中会使其跳转到新位置而不是平滑动画。
我希望能够清楚地解释清楚。关于如何在 slidestop 事件中以编程方式分配值来实现平滑处理动画的任何想法?
答案 0 :(得分:0)
在拖动句柄的过程中,可能会在内部禁用动画,看看是否可以在事件触发后在新的上下文中执行操作:
$("#navScroller").bind("slidestop", function (event, ui) {
setTimeout(function () {
//perform the required logic here
$("#navScroller").slider('value', newScrollerValue);
},10);
});