Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Калькулятор считает в две стороны (https://javascript.ru/forum/misc/79389-kalkulyator-schitaet-v-dve-storony.html)

Diiim 31.01.2020 15:36

Калькулятор считает в две стороны
 
Приветствую, уважаемые форумчане! Опять я к вам за подмогой.

Переделал калькулятор, но что то опять не пойму как дальше быть. Есть слайдер (ползунок) которые подсчитывает некую формулу и выводит текстом значение.

Но вот вопрос! Как после преодоления "0" считать вновь (сейчас остановка на 0 и ни чего дальше не считается), т.е. формула изначально такая "47770 - this.value * 1500", а после преодоления нуля (ноль тоже показываем) становится такой "230 + this.value * 1500" и идет в плюс и сразу показываем блок "вы преодолели отметку"

Может конечно такое не реально, или может как то подменять какие то блоки. Тогда как быть со слайдером? Его же не подменить при движении! Или как то может через условие какое то?

JS калькулятора

$(function() {
  $("#slid-er-1").on("input", function(event) {
 
    var price = Math.max(0, 47770 - this.value * 1500);
 
    price = String(price).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1 ")
    $("#amount_1_1").text(price + " ₽")
    $(".num-bers").val(this.value);
 
  });
});


После преодоления отметки в ноль (ноль тоже показываем) показывается такой блок

<div class="okok">Вы преодолели отметку</div>


Пример - qpage.site/prj_pin/

Скрин прикрепил

рони 31.01.2020 15:48

Diiim,
$(function() {
  $("#slid-er-1").on("input", function(event) {

    var price = 47770 - this.value * 1500;
    $(".okok").html(price <= 0 ? "Вы преодолели отметку" : "");
    if(price < 0) {
     price = 230 + this.value * 1500;
    }

    price = String(price).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1 ")
    $("#amount_1_1").text(price + " ₽")
    $(".num-bers").val(this.value);

  });
});


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