为 jQuery UI 滑块中的每个范围句柄设置最小/最大?
我正在使用 jQuery 滑块,用户可以在其中选择 00:00 到 1d+12:00 之间的时间范围。一共36个小时。 反正。
我想根据它们的设置将最小值和最大值应用于我的手柄。这些是我的要求:
- 左手柄永远不能超过第二天的午夜(最大值为 24 小时)
- 左手柄永远不能从右手柄向左移动超过 -24 小时(最小值是右手柄值减去 24 小时)
- 右手柄永远不能从左手柄开始超过 +24 小时(最大值是左手柄值加 24 小时)
据我了解,最小值和最大值只能应用于单手柄滑块控件,而不能应用于范围滑块?
是否可以为两个手柄单独设置最小值和最大值?
我尝试过以这种方式初始化它,但没有成功:
$(".timing-slider", timing).slider({
range: true,
min: [0, 0],
max: [24, 36],
}
I'm using a jQuery slider where users can select a time range between 00:00 and 1d+12:00. 36 hours all together.
Anyway.
I would like to apply min and max values to my handles based on what they're set to. These are my requirements:
- left handle can never go over midnight on the next day (max is 24 hours)
- left handle can never go more left than -24 hours from right handle (min is right handle value minus 24 hours)
- right handle can never go more than +24 hours from the left handle (max is left handle value plus 24 hours)
As I understand, minimum and maximum values can only be applied to single handle slider control and not to range slider?
Is it possible to set minimums and maximums individually to both handles?
I've tried initializing it this way but no luck:
$(".timing-slider", timing).slider({
range: true,
min: [0, 0],
max: [24, 36],
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个 jQuery UI 滑块扩展满足了所有较高的要求,
我已经设法更改默认的 jQuery UI 滑块以包含更多配置属性:
minRangeSize
- 设置最小范围大小,以便范围可以不能比此设置窄maxRangeSize
- 设置最大范围大小,因此范围不能比此设置宽autoShift
- 设置为true
时它会自动拖动当范围宽度达到最大时,另一个手柄沿;当设置为false
时,手柄无法移动到超出最大范围宽度lowMax
- 设置下手柄上限,因此不可能将下手柄设置为超出此值topMin
- 设置上手柄下边界,因此不可能将上手柄设置为低于此值这是一个 工作此类范围滑块的示例。
这是 jQuery slider 之后必须运行的额外代码。它实际上重写了其内部函数之一来检查新设置。此代码只会在加载滑块脚本时更改滑块代码(因此第一个 if 语句检查滑块小部件是否已加载):
This jQuery UI slider extension satisfies all upper requirements
I've managed to change default jQuery UI slider to include a few more configuration properties:
minRangeSize
- sets minimum range size so ranges can't be narrower than this settingmaxRangeSize
- sets maximum range size so ranges can't be wider than this settingautoShift
- when set totrue
it automatically drags the other handle along when range width reaches maximum; when set tofalse
handle just can't be moved beyond maximum range widthlowMax
- sets the lower handle upper boundary so it's impossible to set lower handle beyond this valuetopMin
- sets the upper handle lower boundary so it's impossible to set upper handle below this valueThis is a working example of such range slider.
This is the extra code that has to be run after jQuery slider. It actually rewrites one of its internal functions to also check the new settings. This code will only change slider code when slider script has been loaded (hence the first if statement that checks whether slider widget has been loaded):