【发布时间】:2014-05-28 09:20:54
【问题描述】:
我在一个项目中使用 jQuery UI Slider 组件作为时间数据过滤器,有两个句柄。由于规模非常大,有时用户很难将手柄放在滑块的极限上。这会给时间戳接近滑块极限值的数据带来一些麻烦。
现在我正在尝试强制滑块自动移动到边缘,如果该值在某个间隔内:
$('#slider-range').on( 'slide', function( event, ui ) {
if( typeof ui !== 'undefined' ){
// magnetic edges
var magTrigger = 0.20;
var values = $('#slider-range').slider('values');
var min = $('#slider-range').slider('option', 'min');
var max = $('#slider-range').slider('option', 'max');
if(values[0] != min && values[0] - (values[0] * magTrigger) <= min) {
$('#slider-range').slider('values', 0, min);
}
if(values[1] != max && values[1] + (values[1] * magTrigger) >= max) {
$('#slider-range').slider('values', 1, max);
}
// typical update routines
}
}
在这种情况下,如果一个句柄在各自限制的 20% 以内,则应视为已在限制范围内。但是,有一个视觉问题,因为当我移动另一个手柄时,滑块只是更新(即先前更新的手柄达到极限)。如何在用户移动手柄时实现假装效果?
【问题讨论】:
标签: javascript jquery jquery-ui jquery-ui-slider