| 
	| 
	
	| 
		
	| 
			
			 
			
				11.08.2016, 17:37
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 11.08.2016 
						Сообщений: 4
					 
		
 |  |  
	| Есть 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>
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				11.08.2016, 18:52
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| 
				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>
 			 Последний раз редактировалось рони, 11.08.2016 в 18:55.
 |  |  
	| 
		
	| 
			
			 
			
				12.08.2016, 15:33
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 11.08.2016 
						Сообщений: 4
					 
		
 |  |  
	| Спасибо, очень помогли |  |  
	| 
		
	| 
			
			 
			
				26.02.2018, 14:22
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 20.09.2017 
						Сообщений: 6
					 
		
 |  |  
	| рони, помоги.
 хочу использовать 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.
 |  |  
	| 
		
	| 
			
			 
			
				26.02.2018, 15:35
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| makcim_tol,не понимаю логики
 |  |  
	| 
		
	| 
			
			 
			
				27.02.2018, 00:43
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 20.09.2017 
						Сообщений: 6
					 
		
 |  |  
	| Есть параметры квартиры: площадь(1), кол-во комнат(2), этаж(3).
 Т.е. если выбрать площадь от 30 до 60, то это могут быть либо однокомнатные либо двухкомнатные.
 Ну а если выбрать например кол-во комнат с 2 по 4, то площадь соответственно уже будет от 50 до 100.
 А если выбрать только кол-во комнат 3. то площадь выберется от 60 до 90.
 
 Надеюсь понятнее объяснил.
 |  |  
	| 
		
	| 
			
			 
			
				27.02.2018, 00:49
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 20.09.2017 
						Сообщений: 6
					 
		
 |  |  
	| Если выбрано кол-во комнат 3 и площадь квартир от 60 до 90, то ни что не должно мешать пользователю изменить площадь на от 80 до 90.Но если пользователь изменить например на от 80 до 100, то и кол-во комнат измениться на с 3 по 4.
 |  |  
	| 
		
	| 
			
			 
			
				27.02.2018, 01:58
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| makcim_tol,не предсталяю как это можно сделать, не могу помочь.
 |  |  
	| 
		
	| 
			
			 
			
				27.02.2018, 13:05
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 01.12.2016 
						Сообщений: 3,650
					 
		
 |  |  
	| а что if уже отменили? |  |  
	| 
		
	| 
			
			 
			
				27.02.2018, 13:17
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| j0hnik,
   |  |  |  |