Калькулятор с ползунком (фейдером) на JS/jQuery. Как сделать, что бы при движении ползунка значение менялось везде?
var elem = document.querySelector('input[type="range"]');
var rangeValue = function(){
var newValue = elem.value;
var target = document.querySelector('.value');
target.innerHTML = newValue;
}
elem.addEventListener("input", rangeValue);
.first__section {
padding-top: 65px;
background-color: #8de482;
}
.first__section .container {
padding: 20px 12px;
}
.first__section .container .first__section-txt {
font-family: "Marvin", sans-serif;
color: #fff;
line-height: 20px;
font-size: 20px;
}
.first__section .container .first__section-img {
margin: 20px 0;
width: 300px;
}
.first__section .container .section__title {
color: #00719e;
font-size: 25px;
text-transform: uppercase;
border: 2px dashed #fff;
border-radius: 25px;
line-height: 45px;
margin-bottom: 15px;
}
.first__section .container .value {
text-align: center;
font-weight: bold;
font-size: 30px;
color: #fff;
width: 85px;
height: 45px;
background-color: #00acc4;
border: 3px solid #fff;
border-radius: 10px;
line-height: 45px;
margin: 10px auto;
}
.first__section .container .age {
padding: 0 0 15px 0;
margin: 0 auto;
width: 240px;
color: #fff;
font-size: 20px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
}
.first__section .container input[type="range"] {
display: block;
-webkit-appearance: none;
background-color: #ca94b3;
width: 200px;
height: 30px;
border-top: 2px solid #fff;
border-bottom: 2px solid #fff;
border-left: 2px;
border-radius: 10px;
margin: 0 auto;
outline: 0;
}
.first__section .container input[type="range"]::before, .first__section .container input[type="range"]::after {
content: "";
border: 1px solid #fff;
padding: 10px 0 20px 0;
}
.first__section .container input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
background-color: #fff;
width: 8px;
height: 45px;
border-radius: 15%;
cursor: pointer;
-webkit-transition: 0.3s ease-in-out;
transition: 0.3s ease-in-out;
margin: 0 5px 0 5px;
}
.counter__value {
background-color: #fff;
padding: 15px 0;
}
.counter__value .container .wrapper {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
.counter__value .container .product {
background-color: #ca94b3;
width: 40%;
border-radius: 10px;
margin: 0 10px 10px 0;
}
.counter__value .container .product img {
width: 100%;
margin: 35px auto;
-webkit-filter: drop-shadow(8px 5px 3px rgba(0, 0, 0, 0.7));
filter: drop-shadow(8px 5px 3px rgba(0, 0, 0, 0.7));
}
.counter__value .container .tab {
padding: 10px 30px;
background-color: #00acc4;
border-radius: 10px;
color: #fff;
font-size: 20px;
margin: 0 0 10px 0;
}
.counter__value .container .tab .value {
border: 2px dashed #fff;
border-radius: 10px;
padding: 7px 0;
margin: 7px 10px;
}
.counter__value .container .value__wrapper {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.counter__value .container .value__wrapper .tab__item {
padding-top: 10px;
width: 45%;
margin: 0 auto;
}
.counter__value .container .value__wrapper .tab__item .valeu__subname {
font-size: 15px;
}
.counter__value .container .btn {
display: block;
text-transform: uppercase;
color: #fff;
font-size: 22px;
background-color: #00acc4;
border-radius: 10px;
padding: 10px 0;
}
<section class="first__section">
<div class="container">
<h1 class="section__title">калькулятор годування</h1>
<div class="counter" id="counter">
<div class="value">0</div>
<div class="age"> <span>0 днiв</span> <span>6 мiс.</span> <span>12 мiс.</span> </div>
<input type="range" min="0" max="12" step="1" value="0" id="fader"> </div>
</div>
</section>
<section class="counter__value">
<div class="container">
<div class="wrapper">
<div class="tabs">
<div class="tab">
<h3 class="value__name">Вік дитини</h3>
<div class="value" id="years">1 тиждень</div>
</div>
<div class="tab">
<h3 class="value__name">Кількість годувань на добу</h3>
<div class="value" id="feedings">8</div>
</div>
</div>
</div>
<div class="tab">
<h3 class="value__name">Кількість на одне годування</h3>
<div class="value__wrapper">
<div class="tab__item">
<h4 class="valeu__subname">Прокип’ячена вода <br> мл</h4>
<div class="value" id="water">60</div>
</div>
<div class="tab__item">
<h4 class="valeu__subname">Кількість мірних ложок порошку</h4>
<div class="value" id="spoons">2</div>
</div>
</div>
</div> <a href="#" class="btn">купити</a> </div>
</section>
Ответы (1 шт):
Автор решения: Bear Vorkuta
→ Ссылка
let elem = document.querySelector('input[type="range"]');
let age = document.querySelector('#years');
let feed = document.querySelector('#feedings');
let water = document.querySelector('#water');
let spoons = document.querySelector('#spoons');
const rangeValue = function(){
let newValue = elem.value;
//вычисления необходимых параметров на основании newValue
...
//запись полученых значений в дивы
age.textContent = ...;
water.textContent = ...;
feed.textContent = ...;
spoons.textContent = ...;
}
elem.addEventListener("change", rangeValue);
