我有一个数组
valmap = [5,4,3,2,1,0,1,2,3,4,5];
现在,例如滑块的句柄位于轨道数组 [5] 上,即 0,句柄位于轨道的中心。当我单击为 5 的轨道数组 [0] 时,手柄应仅移动到为 1 的轨道数组 [4],而不是直接移动到数组 [0] 或等于 5 的轨道末端。
它应该找到最近的数组。例如,句柄在数组 [5] 上,其值为 0。当单击左侧轨道时,它应该找到最近的数组,并且应该是数组 [4],其值为 1。
当我再次单击轨道时,现在我将单击轨道的右侧,手柄应移回数组 [5],这是滑块的中心,等于 0。
我怎样才能做到这一点?
这是我的代码:
$(document).ready(function() {
var valMap = [5,4,3,2,1,0,1,2,3,4,5]; //0 is the default camera zoom
var slider = $( "#slider" ).slider({
disabled: false,
animate: true,
min: 0,
max: valMap.length-1,
values: [5],
slide: function( event, ui ) {
$( "#zomlevel" ).val(valMap[ui.values[0]] + "x");
slider.slider("option", "animate", "slow");
}
});
});
这是一个 jsfiddle:http: //jsfiddle.net/endl3ss/jNwww/
编辑添加说明:
例如,我点击轨道的左侧,手柄在中心,手柄不应该直接跳到我点击鼠标的轨道左侧,它应该寻找下一个数组并移动到那里而不是跳到数组的末尾。