09.09.2015, 12:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Сообщение от gabe
|
есть многомерный массив [ [1, 100], [101, 500], [501, 1000], [1001, 5000], [5001, 10000], [10000] ]
|
а скидка где?
|
|
09.09.2015, 12:42
|
Интересующийся
|
|
Регистрация: 09.09.2015
Сообщений: 12
|
|
Сообщение от рони
|
а скидка где?
|
Скидка начинается со 2го массива там -0.2, на 3м = -0.4, 4м = -0.6, 5м = -0.8, 6м = -0.9...
|
|
09.09.2015, 13:53
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от gabe
|
И при 105 клиентах надо, чтобы цена была не 104.8, а 104... то есть 105 - 0.2*5...
|
Ну так что определяет эту скидку - судя по примерам только крайние левые значения, но какой их диапазон?
У числа от 0 до "восьмерка на боку" можно получать крайние левые значения по маске и использовать. Но если это не закономерность, значит нужны и условия.
|
|
09.09.2015, 14:01
|
Интересующийся
|
|
Регистрация: 09.09.2015
Сообщений: 12
|
|
Сообщение от laimas
|
Ну так что определяет эту скидку - судя по примерам только крайние левые значения, но какой их диапазон?
У числа от 0 до "восьмерка на боку" можно получать крайние левые значения по маске и использовать. Но если это не закономерность, значит нужны и условия.
|
Диапазона нету, они просто существуют как значение... При стольки столько... И вот к формуле этого расчета ни как не могу прийти... ;(
А определяет это все дело числа 101, 501, 1001, 5001 и 10001
То есть с этих значений и начинается новый расчет как -то так
|
|
09.09.2015, 14:28
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от gabe
|
Диапазона нету, они просто существуют как значение...
|
и при этом 102 ступень, рассчитывается с 0.2, то есть нужно, чтобы на 102, оно отнимало не 0.2, а уже 0.4, на 103 - 0.6, на 104 - 0.8 и тп., то есть 0, 1, 2, 3, 4, Х?
У меня ступор, значит я не понимаю.
|
|
09.09.2015, 14:37
|
Интересующийся
|
|
Регистрация: 09.09.2015
Сообщений: 12
|
|
Сообщение от laimas
|
и при этом 102 ступень, рассчитывается с 0.2, то есть нужно, чтобы на 102, оно отнимало не 0.2, а уже 0.4, на 103 - 0.6, на 104 - 0.8 и тп., то есть 0, 1, 2, 3, 4, Х?
У меня ступор, значит я не понимаю.
|
Ну смотри, за 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.
Я сам уже заебался, на листочке все прощеты сделал, правда с максимальными значениями, но с коде хз как
|
|
09.09.2015, 15:13
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от gabe
|
за 107 - $105.6 и тп
|
Ну так что определяет каждое новое значение и есть ли предел этого значения? По примеру видно, что базовую скидку -0.2 нужно умножать на 0, 1, 2, 3 ... ? Или же может быть 199 и значит -0.2 * 99 ?
|
|
09.09.2015, 17:13
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
gabe,
как будет расчёт для 600 ?
100 - 100 * 1 - 100
400 - 400 * 0.8 - 320
100 - 100 * 0.6 - 60
итого 480
так?
|
|
09.09.2015, 17:50
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
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>
Последний раз редактировалось рони, 09.09.2015 в 18:06.
|
|
09.09.2015, 17:57
|
Интересующийся
|
|
Регистрация: 09.09.2015
Сообщений: 12
|
|
Спасибо большое за помощь...
И разобрался и показали как...
СПАСИБО!
|
|
|
|