单滑块带有两个带有自己范围的旋钮

时间:2011-06-11 11:39:04

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

我有一个小要求..请有人帮助我 我有这个代码使用JQuery UISlider制作一个带有两个旋钮的滑块,但我希望两者都有自己的范围。
例如,如果总范围是1-100,则第一个旋钮应仅在1-50之间滑动,第二个旋钮应在51-100之间滑动。

<script>
$(function() {
    $( "#slider-range" ).slider({
        range: true,
        min: 1,
        max: 100,
        values: [ 1, 100 ],
        slide: function( event, ui ) {
            $( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
        }
    });
    $( "#amount" ).val( "$" + $( "#slider-range" ).slider( "values", 0 ) +
        " - $" + $( "#slider-range" ).slider( "values", 1 ) );
});
</script>

2 个答案:

答案 0 :(得分:2)

您可以这样做:

$("#slider-range").slider({
    range: true,
    min: 1,
    max: 100,
    values: [1, 100],
    slide: function(event, ui) {
        // Make sure first handle doesn't go over 50
        if ( ui.value == ui.values[0] && ui.value > 50 ) {
            return false;
        }
        // Make sure second handle doesn't go below 51
        if ( ui.value == ui.values[1] && ui.value < 51 ) {
            return false;
        }
        $("#amount").val("$" + ui.values[0] + " - $" + ui.values[1]);
    }
});
$("#amount").val("$" + $("#slider-range").slider("values", 0) + " - $" + $("#slider-range").slider("values", 1));

示例:http://jsfiddle.net/petersendidit/kbHbc/1/

答案 1 :(得分:0)

jQuery UI滑块扩展 - 未来参考

我已经为现有的jQuery UI滑块小部件编写了一个扩展,它(也)完成了你需要的工作。由于代码是维护的,因此我不会在此处粘贴代码,因为您始终可以获得latest version on my blog

支持的内容

  • 允许的最小和最大范围
  • 较低范围边界最大值 - 这是您需要的
  • 上限边界最小值 - 此一个
  • 自动范围滑动 - 当一个手柄达到最大范围尺寸时,它会拖动另一个手柄,同时保持范围大小为最大值