Как выбрать значение с помощью ползунка?

Может ли кто-нибудь помочь мне с этим проектом, над которым я работаю? Я хочу выбрать один из двух элементов div (KgDiv, LDiv), щелкнув его, затем с помощью ползунка выберите значение от 0 до максимального значения абзаца «Килограммы/Литры», а затем с помощью кнопки «Продать» преобразовать кг или L к € по курсу 1 к 1. Также рядом с ползунком должно отображаться количество (кг или л), выбранное с помощью ползунка.

var KilogramsV = 0;
var LitersV = 0;

function AddKg() {
  KilogramsV += 400;
  document.getElementById("Kilograms").innerHTML = KilogramsV + " " + "Kilograms";
}

function AddL() {
  LitersV += 340;
  document.getElementById("Liters").innerHTML = LitersV + " " + "Liters";
}
<div id = "KgDiv">
  <p id = "Kilograms">Kilograms</p>
  <input type = "button" onClick = "AddKg()" value = "+400Kg"></input>
</div>
<div id = "LDiv">
  <p id = "Liters">Liters</p>
  <input type = "button" onClick = "AddL()" value = "+340L"></input>
</div>

<input type = "button" onClick = "Sell()" value = "Sell"></input>
<p id = "Money">€ 0</p>

<input id = "SlideBar" type = "range" min = "0" max = "100" value = "50"></input>

Это то, что у меня есть до сих пор. Спасибо!

Я смотрел видео, но не нашел ничего полезного.

Добро пожаловать в Stack Overflow! Каким образом ваш код не работает должным образом? Пожалуйста, подробно опишите конкретную проблему, которую вы наблюдаете, и какие отладки вы сделали. Чтобы узнать больше об этом сообществе и о том, как мы можем вам помочь, начните с тура и прочитайте Как спросить и связанные с ним ресурсы.

David 14.03.2024 18:01

Общее примечание: элементы ввода являются самозакрывающимися. Закрывающий тег не нужен, он должен быть либо <input/>, либо просто <input>.

DBS 14.03.2024 18:02
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
2
76
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Все, что я добавил в ваш код, это то, что он показывает значение ползунка под ползунком.

var KilogramsV = 0;
var LitersV = 0;
var sliderValue = 0;
function AddKg() {
  KilogramsV += 400;
  document.getElementById("Kilograms").innerHTML = KilogramsV + " " + "Kilograms";
}

function AddL() {
  LitersV += 340;
  document.getElementById("Liters").innerHTML = LitersV + " " + "Liters";
}
function sliderChange(val) {
    document.getElementById('slider').innerHTML = val;
    sliderValue = val;
}
<div id = "KgDiv">
  <p id = "Kilograms">Kilograms</p>
  <input type = "button" onClick = "AddKg()" value = "+400Kg"></input>
</div>
<div id = "LDiv">
  <p id = "Liters">Liters</p>
  <input type = "button" onClick = "AddL()" value = "+340L"></input>
</div>

<input type = "button" onClick = "Sell()" value = "Sell"></input>
<p id = "Money">€ 0</p>

<input id = "SlideBar" type = "range" min = "0" max = "100" value = "50" oninput = "sliderChange(this.value)"></input>
<p id = "slider"> 50 </p>
Ответ принят как подходящий

Чтобы достичь вашей цели, нам следует изменить ваш код и добавить еще немного JavaScript.

var kilogramsV = 0;
var litersV = 0;
var selectedType = 'kg'; // Default selection

function addKg() {
  kilogramsV += 400;
  document.getElementById("Kilograms").innerHTML = kilogramsV + " Kilograms";
  if (selectedType === 'kg') {
    updateSliderMax(kilogramsV);
  }
}

function addL() {
  litersV += 340;
  document.getElementById("Liters").innerHTML = litersV + " Liters";
  if (selectedType === 'l') {
    updateSliderMax(litersV);
  }
}

function selectType(type) {
  selectedType = type;
  const selectionText = type === 'kg' ? 'Kilograms' : 'Liters';
  document.getElementById("ActiveSelection").innerHTML = `Active: ${selectionText}`;
  updateSliderMax(type === 'kg' ? kilogramsV : litersV);
}

function updateSliderMax(maxValue) {
  document.getElementById("SlideBar").max = maxValue;
  document.getElementById("SlideBar").value = 0; // Reset the slider value
  updateQuantity(0); // Reset the displayed quantity
}

function updateQuantity(value) {
  document.getElementById("SelectedQuantity").innerHTML = `Selected: ${value} ${selectedType.toUpperCase()}`;
}

function sell() {
  var quantity = document.getElementById("SlideBar").value;
  var money = parseInt(quantity); // Since 1 kg/l = 1 €
  document.getElementById("Money").innerHTML = '€ ' + money;
}
<div id = "KgDiv" onclick = "selectType('kg')">
  <p id = "Kilograms">Kilograms</p>
  <input type = "button" onclick = "addKg()" value = "+400Kg">
</div>
<div id = "LDiv" onclick = "selectType('l')">
  <p id = "Liters">Liters</p>
  <input type = "button" onclick = "addL()" value = "+340L">
</div>

<p id = "SelectedQuantity">Selected: 0 Kg</p>
<input type = "button" onclick = "sell()" value = "Sell">
<p id = "Money">€ 0</p>

<p id = "ActiveSelection">Active: None</p> <!-- Indicates active selection -->

<input id = "SlideBar" type = "range" min = "0" max = "100" value = "0" oninput = "updateQuantity(this.value)">

Что делают эти коды?

  • selectType(type) функция устанавливает, какой тип устройства является активным, и распечатывает его конечному пользователю.
  • updateSliderMax(maxValue) функция обновляет максимальное значение ползунка на основе общей суммы выбранного типа и сбрасывает отображение ползунка и выбранного количества.
  • Функция updateQuantity(value) обновляет текст рядом с ползунком, чтобы отобразить выбранное в данный момент количество вместе с правильной единицей измерения (кг или л).
  • Функция sell() конвертирует выбранное количество в евро по курсу 1:1 и обновляет пункт «Деньги», чтобы отобразить общую сумму в евро.

Другие вопросы по теме