Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 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>
Ответить с цитированием
  #12 (permalink)  
Старый 11.08.2016, 18:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

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.
Ответить с цитированием
  #13 (permalink)  
Старый 12.08.2016, 15:33
Новичок на форуме
Отправить личное сообщение для Клавер Посмотреть профиль Найти все сообщения от Клавер
 
Регистрация: 11.08.2016
Сообщений: 4

Спасибо, очень помогли
Ответить с цитированием
  #14 (permalink)  
Старый 26.02.2018, 14:22
Новичок на форуме
Отправить личное сообщение для makcim_tol Посмотреть профиль Найти все сообщения от makcim_tol
 
Регистрация: 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.
Ответить с цитированием
  #15 (permalink)  
Старый 26.02.2018, 15:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

makcim_tol,
не понимаю логики
Ответить с цитированием
  #16 (permalink)  
Старый 27.02.2018, 00:43
Новичок на форуме
Отправить личное сообщение для makcim_tol Посмотреть профиль Найти все сообщения от makcim_tol
 
Регистрация: 20.09.2017
Сообщений: 6

Есть параметры квартиры: площадь(1), кол-во комнат(2), этаж(3).

Т.е. если выбрать площадь от 30 до 60, то это могут быть либо однокомнатные либо двухкомнатные.
Ну а если выбрать например кол-во комнат с 2 по 4, то площадь соответственно уже будет от 50 до 100.
А если выбрать только кол-во комнат 3. то площадь выберется от 60 до 90.

Надеюсь понятнее объяснил.
Ответить с цитированием
  #17 (permalink)  
Старый 27.02.2018, 00:49
Новичок на форуме
Отправить личное сообщение для makcim_tol Посмотреть профиль Найти все сообщения от makcim_tol
 
Регистрация: 20.09.2017
Сообщений: 6

Если выбрано кол-во комнат 3 и площадь квартир от 60 до 90, то ни что не должно мешать пользователю изменить площадь на от 80 до 90.
Но если пользователь изменить например на от 80 до 100, то и кол-во комнат измениться на с 3 по 4.
Ответить с цитированием
  #18 (permalink)  
Старый 27.02.2018, 01:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

makcim_tol,
не предсталяю как это можно сделать, не могу помочь.
Ответить с цитированием
  #19 (permalink)  
Старый 27.02.2018, 13:05
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

а что if уже отменили?
Ответить с цитированием
  #20 (permalink)  
Старый 27.02.2018, 13:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

j0hnik,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery UI Slider Mcqueen jQuery 2 03.10.2013 00:48
jQuery UI Range slider как заблокировать левый ползунок по первому клику Oleg_Pupkin jQuery 3 04.09.2013 13:44
jQuery UI Slider изменяет ширину ползунка SkaN2412 jQuery 1 26.11.2012 13:03
При активации Disqus, не работает Nivo slider, как решить проблему? pinkfloyd Общие вопросы Javascript 0 30.05.2011 15:29
Ползунки в Jquery UI Slider deface jQuery 0 07.12.2010 15:04