如何防止jQuery UI滑块处理重叠?

时间:2012-05-25 12:51:11

标签: jquery-ui

使用jQuery-UI 1.7,我已经集成了滑块。一切都很好,但拖动时滑块的手柄相互重叠。我该如何防止这种情况。

你可以在这里看到我的ui滑块

默认视图:

enter image description here

重叠视图:

enter image description here

2 个答案:

答案 0 :(得分:26)

您可以通过检测slide事件处理程序中的重叠并返回false以防止幻灯片发生来实现此目的。例如:



$( "#slider-range" ).slider({
    range: true,
    min: 0,
    max: 500,
    values: [ 75, 300 ],
    slide: function( event, ui ) {
        if ( ( ui.values[ 0 ] + 20 ) >= ui.values[ 1 ] ) {
            return false;
        }
    }
});

body { padding: 50px; }

<link href="http://code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script src="http://code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<div id="slider-range"></div>
&#13;
&#13;
&#13; 请注意,在此示例中,20的值仅根据句柄的宽度进行硬编码。根据您的使用案例,您必须将其更改为任何有意义的内容。

答案 1 :(得分:-1)

<script>
    $( "#slider-range" ).slider({
        range: true,
        min: 0,
        max: 500,
        values: [ 75, 300 ],
        slide: function(event, ui) {
            if ( (ui.values[0] + 55) >= ui.values[1] ) {
                return false;
            }
        }
    });​
</script>