11

jQuery-UI 1.7を使用して、スライダーを統合しました。すべて正常に動作していますが、ドラッグ中にスライダーのハンドルが重なり合っています。どうすればこれを防ぐことができますか。

ここに私のUIスライダーが表示されます

デフォルトビュー:

ここに画像の説明を入力してください

重複したビュー:

ここに画像の説明を入力してください

4

2 に答える 2

30

これを実現するには、イベントハンドラーでオーバーラップを検出し、slidefalseを返して、スライドが発生しないようにします。例:

$( "#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>
この例では、の値は20ハンドルの幅に基づいて単純にハードコーディングされていることに注意してください。ユースケースごとに、それを意味のあるものに変更する必要があります。

于 2012-05-25T13:00:37.333 に答える
-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>
于 2014-09-20T07:32:11.467 に答える