Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Зависимость шага 2го ползунка от позиции первого (https://javascript.ru/forum/jquery/62735-zavisimost-shaga-2go-polzunka-ot-pozicii-pervogo.html)

рони 26.04.2016 17:35

fos,
не понял ничего.

fos 26.04.2016 18:02

Цитата:

Сообщение от рони (Сообщение 415065)
fos,
не понял ничего.

собственно про это я и говорил :( я искренне пытался объяснить, но даже хз как выразить это еще :)

попробую дообъяснить:

X = 30 -> Y = 30, 40 - означает, что при ползунке1 в позиции "30", в ползунке 2 доступны шкалы 30 и 40...
И так расписал все нужные комбинации....

X=30 & G=40 и X=40 & G=30 -> Z = 1095, - означает, что при позиции ползунка 1 = "30" и позиции ползуна 2 = "40" некая переменная (которая выводится на экран в виде "Стоимость: ___ " приобретает значение = 1095, равно как и комбинация 40 и 30...
И так тоже расписал все присвоения для всех комбинаций..

Если это вообще реально сделать - мнебы хотябы наметки узреть для 2х комбинаций, остальные естественно я бы сам допилил :)

Чувствую, что о5 невнятно объяснил...

рони 26.04.2016 18:13

fos,
а в таком виде можно?
var price = {
    30: {
        30: 1095,
        40: 5000
    },
    40: {
        1: 400,
        5: 7000
    }
};

fos 26.04.2016 21:28

var cena = {
    30: {
        30: 905,
        40: 1095
    },
    40: {
        30: 1095,
        40: 1305,
        60: 1730
    }
   50: {
        50: 1755,
        70: 2230
   }
   60: {
        40: 1730,
        60: 2255,
        90: 3045
    }
   70: {
        50: 2230,
        70: 3000,
        100: 3670
    }
   80: {
        80: 3500,
        120: 4655
    }  
   90: {
        60: 3045,
        90: 4200
    }  
   100: {
        70: 3670,
        100: 4755
    }  
   120: {
        80: 4655,
        120: 6305
    }  
};


Надеюсь так понятнее получилось? В любом случае спасибо, что объяснили каким языком объяснять, что вообще хочу сделать :)))

При этом собственно еще бы не только ценник присваивался, но и деления в ползуне2 менялись...

рони 26.04.2016 21:37

fos,
запятых у вас маловато :)
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body {
  font-family: sans-serif;
  font-size: 12px;
}

#amount, #amount2, #amount3 {
  font-size: 22px;
  font-weight: bold;
  border:none;
  color: #ff5555;
  background: none;

}
#slider, #slider2{
   width: 300px;
}

 </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js">
</script>
  <script>
$(function() {
var price = {
    30: {
        30: 905,
        40: 1095
    },
    40: {
        30: 1095,
        40: 1305,
        60: 1730
    },
   50: {
        50: 1755,
        70: 2230
   },
   60: {
        40: 1730,
        60: 2255,
        90: 3045
    },
   70: {
        50: 2230,
        70: 3000,
        100: 3670
    },
   80: {
        80: 3500,
        120: 4655
    },
   90: {
        60: 3045,
        90: 4200
    },
   100: {
        70: 3670,
        100: 4755
    },
   120: {
        80: 4655,
        120: 6305
    }
};

    function comb(a) {
        return Object.keys(a)
    }

    var steps = comb(price);
    var num = steps[0];
    var steps2 = comb(price[num]);

    $("#slider2").slider({
        value: 0,
        min: 0,
        max: steps2.length - 1,
        step: 1,
        slide: function(event, ui) {
            var Y = steps2[ui.value];
            $("#amount2").val(Y);
            $("#amount3").val(price[num][Y]);
        },
        change: function(event, ui) {
            var Y = steps2[ui.value];
            $("#amount2").val(Y);
            $("#amount3").val(price[num][Y]);
        }
    });
    $("#slider").slider({
        value: 0,
        min: 0,
        max: steps.length - 1,
        step: 1,
        slide: function(event, ui) {
            num = steps[ui.value];
            $("#amount").val(num);
            steps2 = comb(price[num]);
            $("#slider2").slider("option","max", steps2.length - 1);
            $("#slider2").slider("option", "value", 0)
        },
        change: function(event, ui) {
            num = steps[ui.value];
            $("#amount").val(num);
            steps2 = comb(price[num]);
            $("#slider2").slider("option","max", steps2.length - 1);
            $("#slider2").slider("option", "value", 0)
        }
    });
    $("#slider").slider("option", "value", 0)
});
  </script>
</head>

<body>
    <p>
  <input type="text" id="amount" readonly>
</p>

<div id="slider"></div>

<p>
  <input type="text" id="amount2" readonly>
</p>

<div id="slider2"></div>
<p>
  <input type="text" id="amount3" readonly>
</p>
</body>
</html>

fos 26.04.2016 22:28

Цитата:

Сообщение от рони (Сообщение 415087)
fos,
запятых у вас маловато :)
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body {
  font-family: sans-serif;
  font-size: 12px;
}

#amount, #amount2, #amount3 {
  font-size: 22px;
  font-weight: bold;
  border:none;
  color: #ff5555;
  background: none;

}
#slider, #slider2{
   width: 300px;
}

 </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js">
</script>
  <script>
$(function() {
var price = {
    30: {
        30: 905,
        40: 1095
    },
    40: {
        30: 1095,
        40: 1305,
        60: 1730
    },
   50: {
        50: 1755,
        70: 2230
   },
   60: {
        40: 1730,
        60: 2255,
        90: 3045
    },
   70: {
        50: 2230,
        70: 3000,
        100: 3670
    },
   80: {
        80: 3500,
        120: 4655
    },
   90: {
        60: 3045,
        90: 4200
    },
   100: {
        70: 3670,
        100: 4755
    },
   120: {
        80: 4655,
        120: 6305
    }
};

    function comb(a) {
        return Object.keys(a)
    }

    var steps = comb(price);
    var num = steps[0];
    var steps2 = comb(price[num]);

    $("#slider2").slider({
        value: 0,
        min: 0,
        max: steps2.length - 1,
        step: 1,
        slide: function(event, ui) {
            var Y = steps2[ui.value];
            $("#amount2").val(Y);
            $("#amount3").val(price[num][Y]);
        },
        change: function(event, ui) {
            var Y = steps2[ui.value];
            $("#amount2").val(Y);
            $("#amount3").val(price[num][Y]);
        }
    });
    $("#slider").slider({
        value: 0,
        min: 0,
        max: steps.length - 1,
        step: 1,
        slide: function(event, ui) {
            num = steps[ui.value];
            $("#amount").val(num);
            steps2 = comb(price[num]);
            $("#slider2").slider("option","max", steps2.length - 1);
            $("#slider2").slider("option", "value", 0)
        },
        change: function(event, ui) {
            num = steps[ui.value];
            $("#amount").val(num);
            steps2 = comb(price[num]);
            $("#slider2").slider("option","max", steps2.length - 1);
            $("#slider2").slider("option", "value", 0)
        }
    });
    $("#slider").slider("option", "value", 0)
});
  </script>
</head>

<body>
    <p>
  <input type="text" id="amount" readonly>
</p>

<div id="slider"></div>

<p>
  <input type="text" id="amount2" readonly>
</p>

<div id="slider2"></div>
<p>
  <input type="text" id="amount3" readonly>
</p>
</body>
</html>

пипец) Я не знаю, как Вы это сделали, но оно работает! :)

Еще один вопрос назрел (сорри за наглость...) А ползунок 2 каким-то параметром можно заставить отображаться вертикально, а не горизонтально?

рони 26.04.2016 22:34

Цитата:

Сообщение от fos
А ползунок 2 каким-то параметром можно заставить отображаться вертикально,

http://api.jqueryui.com/slider/#option-orientation

fos 26.04.2016 22:46

Цитата:

Сообщение от рони (Сообщение 415092)

Мужик, ты реально крутой! :) Спасибо тебе большое!

Если нужно помочь с подарком по какому-либо поводу - пиши, помогу!!!

fos 26.04.2016 23:10

Цитата:

Сообщение от рони (Сообщение 415092)

Еще 1 дурацкий вопрос... :) А отображать на позунке деления можно? не обязательно циферные значения, хотябы тупо черточки

рони 26.04.2016 23:17

fos,
за чёрточками лучше сюда ... http://ionden.com/a/plugins/ion.rangeSlider/


Часовой пояс GMT +3, время: 15:49.