【问题标题】:Is it possible to have a fixed, static range on a one-handle jQuery UI slider?是否可以在单手柄 jQuery UI 滑块上有一个固定的静态范围?
【发布时间】:2011-11-12 14:32:35
【问题描述】:

基本上我要做的是一个用于一堆日期的单手柄 jQuery UI 滑块。选择的日期范围总是两周。我想做的只是从两周范围的开始日期(即句柄所在的日期)开始两周后显示一个范围(范围不必是功能性的 - 只是显示)。这个范围是固定的。

例如,如果句柄在 1 月 1 日,我希望将范围扩展到 1 月 14 日。如果滑块移动到 1 月 3 日,我希望移动范围在 16 日结束。

有谁知道这是否可行?

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-slider


    【解决方案1】:

    jQuery UI 滑块在设计时并未考虑到这一点,但您可以自己处理滑块的 slidestop 事件,以根据需要重置范围值。

    http://docs.jquery.com/UI/Slider

    这并不能满足您的所有要求,但这是一个开始。

    $('#myslider').slider({
        min:1,
        max:31,
        values:[1, 14],
        step:1,
        range:true,
        slide:function(event, ui) {
            var s = $(this);
            var values = s.slider('option', 'values');
    
            if(ui.handle.nextElementSibling == null) // max slider
                values[0] = values[1] - 14;
            else // min slider
                values[1] = values[0] + 14;
    
            s.slider('option', 'values', values);
        },
        stop:function() {
            var s = $(this);
            var min = s.slider('option', 'min'),
                max = s.slider('option', 'max'),
                values = s.slider('option', 'values');
    
            if(values[0] <= min)
                values = [min, min + 14];
            if(values[1] >= max)
                values = [max - 14, max];
    
            s.slider('option', 'values', values);
        }
    });
    

    【讨论】:

    • 太棒了。非常感谢。我绝对可以调整它以满足我的需要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 2023-02-09
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多