Есть 4 бегунка, оформил их так, но теперь не могу понять, как установить связь. Общая сумма всех 4х слайдеров не должна превышать 100 %, т.е. значения могут быть любые, больше-меньше не важно, главное чтоб в сумме всегда оставалось 100. Код сырой, там еще расчеты будут с использованием значений слайдеров.
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>slider</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/south-street/jquery-ui.css"> <style> #slider0, #slider1, #slider2, #slider3 { margin: 10px; width: 300px; } </style> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> </head> <script> jQuery(function() { $("#slider0").slider({ range: "min", value: 50, min: 0, max: 100, slide: function(event, ui) { $('#amount0').val(ui.value).trigger("change"); } }); $("#amount0").val($("#slider0").slider("value")); $("#slider1").slider({ range: "min", value: 50, min: 0, max: 100, slide: function(event, ui) { $('#amount1').val(ui.value).trigger("change"); } }); $("#amount1").val($("#slider1").slider("value")); $("#slider2").slider({ range: "min", value: 50, min: 0, max: 100, slide: function(event, ui) { $('#amount2').val(ui.value).trigger("change"); } }); $("#amount2").val($("#slider2").slider("value")); $("#slider3").slider({ range: "min", value: 50, min: 0, max: 100, slide: function(event, ui) { $('#amount3').val(ui.value).trigger("change"); } }); $("#amount3").val($("#slider3").slider("value")); }); </script> </script> <body> <input id="amount0"> <div id="slider0"></div> <input id="amount1"> <div id="slider1"></div> <input id="amount2"> <div id="slider2"></div> <input id="amount3"> <div id="slider3"></div> </body> |
slider jquery-ui 4 обратнозависимых ползунка
Клавер,
код применим для любого количества ползунков и общей суммы. <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .slider{ width: 300px; margin: 10px; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/south-street/jquery-ui.css"> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> <script> $(function() { var arr = [25, 25, 25, 25], k = 0; $(".opt").each(function(i, el) { var d = arr[i], am = $(".amount", el), sl = $(".slider", el); sl.slider({ min: 0, max: 100, step: 1, slide: function(event, ui) { am.val(ui.value); var n = arr[i] - ui.value; arr[i] = +ui.value; for (var a = Math.abs(n); a; k = ++k % arr.length) { if (k != i && arr[k] < 100 && n > 0) { arr[k] += 1; a-- } if (k != i && arr[k] > 0 && n < 0) { arr[k] -= 1; a-- } } arr.forEach(function(d, j) { if (j != i) $(".slider").eq(j).slider("option", "value", d) }) }, change: function(event, ui) { am.val(ui.value) } }); sl.slider("option", "value", d) }) }); </script> </head> <body> <div class="opt"> <div class="slider"></div> <input type="text" class="amount" readonly> </div> <div class="opt"> <div class="slider"></div> <input type="text" class="amount" readonly> </div> <div class="opt"> <div class="slider"></div> <input type="text" class="amount" readonly> </div> <div class="opt"> <div class="slider"></div> <input type="text" class="amount" readonly> </div> </body> </html> |
Спасибо, очень помогли
|
рони, помоги.
хочу использовать Ion.RangeSlider, но может есть что то более подходящее ко мне. есть три слайдера с диапазонами(двумя ползунками): 1. 30, 40, 50, 60, 70, 80, 90, 100 2. 1, 2, 3, 4 3. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 как сделать зависимости? например: если выбран диапазон в первом слайдере с 30 по 60, то во втором автоматически выбирается диапазон с 1 по 2. А если выбрать во втором значения с 2 по 3, то в первом измениться на с 40 по 90. |
makcim_tol,
не понимаю логики |
Есть параметры квартиры: площадь(1), кол-во комнат(2), этаж(3).
Т.е. если выбрать площадь от 30 до 60, то это могут быть либо однокомнатные либо двухкомнатные. Ну а если выбрать например кол-во комнат с 2 по 4, то площадь соответственно уже будет от 50 до 100. А если выбрать только кол-во комнат 3. то площадь выберется от 60 до 90. Надеюсь понятнее объяснил. |
Если выбрано кол-во комнат 3 и площадь квартир от 60 до 90, то ни что не должно мешать пользователю изменить площадь на от 80 до 90.
Но если пользователь изменить например на от 80 до 100, то и кол-во комнат измениться на с 3 по 4. |
makcim_tol,
не предсталяю как это можно сделать, не могу помочь. |
а что if уже отменили?
|
j0hnik,
:-? |
Часовой пояс GMT +3, время: 13:43. |