Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Еще один калькулятор (https://javascript.ru/forum/jquery/58192-eshhe-odin-kalkulyator.html)

рони 09.09.2015 12:27

Цитата:

Сообщение от gabe
есть многомерный массив [ [1, 100], [101, 500], [501, 1000], [1001, 5000], [5001, 10000], [10000] ]

а скидка где?

gabe 09.09.2015 12:42

Цитата:

Сообщение от рони (Сообщение 387813)
а скидка где?

Скидка начинается со 2го массива там -0.2, на 3м = -0.4, 4м = -0.6, 5м = -0.8, 6м = -0.9...

laimas 09.09.2015 13:53

Цитата:

Сообщение от gabe
И при 105 клиентах надо, чтобы цена была не 104.8, а 104... то есть 105 - 0.2*5...

Ну так что определяет эту скидку - судя по примерам только крайние левые значения, но какой их диапазон?
У числа от 0 до "восьмерка на боку" можно получать крайние левые значения по маске и использовать. Но если это не закономерность, значит нужны и условия.

gabe 09.09.2015 14:01

Цитата:

Сообщение от laimas (Сообщение 387829)
Ну так что определяет эту скидку - судя по примерам только крайние левые значения, но какой их диапазон?
У числа от 0 до "восьмерка на боку" можно получать крайние левые значения по маске и использовать. Но если это не закономерность, значит нужны и условия.

Диапазона нету, они просто существуют как значение... При стольки столько... И вот к формуле этого расчета ни как не могу прийти... ;(
А определяет это все дело числа 101, 501, 1001, 5001 и 10001
То есть с этих значений и начинается новый расчет ;) как -то так ;)

laimas 09.09.2015 14:28

Цитата:

Сообщение от gabe
Диапазона нету, они просто существуют как значение...

и при этом 102 ступень, рассчитывается с 0.2, то есть нужно, чтобы на 102, оно отнимало не 0.2, а уже 0.4, на 103 - 0.6, на 104 - 0.8 и тп., то есть 0, 1, 2, 3, 4, Х?

У меня ступор, значит я не понимаю. :D

gabe 09.09.2015 14:37

Цитата:

Сообщение от laimas (Сообщение 387839)
и при этом 102 ступень, рассчитывается с 0.2, то есть нужно, чтобы на 102, оно отнимало не 0.2, а уже 0.4, на 103 - 0.6, на 104 - 0.8 и тп., то есть 0, 1, 2, 3, 4, Х?

У меня ступор, значит я не понимаю. :D

Ну смотри, за 1 еденицу $1
за 100 - $100,
за 101 - $100.8,
за 102 - $101.6,
за 103 - $102.4,
за 104 - $103.2,
за 105 - $104,
за 106 - $104.8,
за 107 - $105.6 и тп

Получается так, скидка за количество, чем больше количество, тем больше скидка, за каждое новое значение -0.2.
Я сам уже заебался, на листочке все прощеты сделал, правда с максимальными значениями, но с коде хз как

laimas 09.09.2015 15:13

Цитата:

Сообщение от gabe
за 107 - $105.6 и тп

Ну так что определяет каждое новое значение и есть ли предел этого значения? По примеру видно, что базовую скидку -0.2 нужно умножать на 0, 1, 2, 3 ... ? Или же может быть 199 и значит -0.2 * 99 ?

рони 09.09.2015 17:13

gabe,
как будет расчёт для 600 ?
100 - 100 * 1 - 100
400 - 400 * 0.8 - 320
100 - 100 * 0.6 - 60
итого 480
так?

рони 09.09.2015 17:50

gabe,
<!DOCTYPE html><html class=''>
<head><meta charset='UTF-8'><meta name="robots" content="noindex">
<link rel="canonical" href="http://codepen.io/Jonson/pen/MawGER" />

<link rel='stylesheet prefetch' href='//codepen.io/assets/reset/normalize.css'>
<script src='//codepen.io/assets/libs/prefixfree.min.js'></script>
<style class="cp-pen-styles">.sliderPrice {
  width: 500px;
  margin-top: 50px;
  margin-left: 50px;
}
.fa-user {
  position: absolute;
  top: 21px;
  right: 120px;
}
.mount {
  font: 400 18px Arial;
  background: none;
  border: 0;
  text-align: left;
  position: absolute;
  top: 17px;
  left: 0px;
}
.ui-slider {
  position: relative;
  text-align: center;
}
.ui-slider .ui-slider-handle {
  position: absolute;
  z-index: 2;
  width: 1.2em;
  height: 1.2em;
  cursor: default;
  -ms-touch-action: none;
  touch-action: none;
}
.ui-slider .ui-slider-range {
  position: absolute;
  z-index: 1;
  font-size: .7em;
  display: block;
  border: 0;
  background-position: 0 0;
}
.ui-slider.ui-state-disabled .ui-slider-handle,
.ui-slider.ui-slider.ui-state-disabled .ui-slider-range {
  filter: inherit;
}
.ui-slider-horizontal {
  height: .3em;
  background: blue;
  border-radius: 15px;
}
.ui-slider-horizontal .ui-slider-handle {
  top: -0.4em;
  margin-left: -0.6em;
  background: #3333ff;
  border-radius: 50%;
}
.ui-slider-horizontal .ui-slider-range-min {
  height: 100%;
  left: 0;
}
.ui-slider-horizontal .ui-slider-range-min {
  left: 0;
}
.ui-slider-horizontal .ui-slider-range-max {
  right: 0;
}
.ui-state-hover {
  background: blue;
}
.ui-state-active {
  width: 25px !important;
  height: 25px !important;
  top: -0.6em !important;
  border: 0;
  outline: none;
}
p {
  margin: 100px;
}
</style></head><body>
  <section class="sliderPrice">
    <i class="fa fa-user"></i>
    <label for="amount"></label>
    <input type="text" id="amount" class="mount" readonly>
</section>


<p></p>
<script src='//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js'></script>
<script>
$(".sliderPrice").slider({
    value: 0,
    min: 0,
    max: 1e4,
    step: 1,
    slide: function(e, i) {
        for (var l = i.value, a = [
                [100, 1],
                [400, .8],
                [500, .6],
                [4000, .4],
                [4999, .2],
                [1, .1]
            ], r = 0, n = 0; n < a.length; n++) {
            if (l -= a[n][0], !(l > 0)) {
                r += (a[n][0] + l) * a[n][1];
                break
            }
            r += a[n][0] * a[n][1]
        }
        $(".mount").val(i.value + " - $" + r.toFixed(2))
    }
});
$('.mount').val('0' + ' - ' + '$' + $('.sliderPrice').slider('value'));

</script>
</body></html>

gabe 09.09.2015 17:57

Спасибо большое за помощь...
И разобрался и показали как... ;)
СПАСИБО!


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