const sliderInput = document.querySelector('input');
const sliderTracker = document.querySelector('.slider-tracker span');
const minusBtn = document.querySelector('.minus');
const plusBtn = document.querySelector('.plus');
minusBtn.addEventListener('click', function() {
console.log(sliderInput.value)
sliderInput.value -= 0.25;
renderTooltip();
console.log(sliderInput.value)
});
plusBtn.addEventListener('click', function() {
console.log(sliderInput.value)
sliderInput.value += 0.25;
renderTooltip();
console.log(sliderInput.value)
})
function renderTooltip() {
sliderTracker.innerHTML = sliderInput.value
}<input class="slider" type="range" name="slider" min="0.5" max="3" value="1.5" step="0.25">
<div class="slider-tracker"><span>0.5</span></div>
<button class="minus">subtract</button>
<button class="plus">add</button>
我遇到了手动更改范围输入值的问题。
如果从值中减去,一切都按预期工作(它减少了我正确指定的值),但是,当我尝试向输入添加时,我会遇到问题。它要么在1.75时达到最大值,要么在跳过步骤时一直跳到第3步。
有人能告诉我这里发生了什么吗?谢谢。
发布于 2018-12-10 20:42:24
问题是这个值是一个字符串,所以您要添加一个字符串加上一个数字。因此,您需要将字符串更改为数字,而不是添加它。
const sliderInput = document.querySelector('input');
const sliderTracker = document.querySelector('.slider-tracker span');
const minusBtn = document.querySelector('.minus');
const plusBtn = document.querySelector('.plus');
minusBtn.addEventListener('click', function() {
console.log(sliderInput.value)
sliderInput.value -= 0.25;
renderTooltip();
console.log(sliderInput.value)
});
plusBtn.addEventListener('click', function() {
console.log(typeof sliderInput.value, sliderInput.value, )
sliderInput.value = +sliderInput.value + 0.25;
renderTooltip();
console.log(sliderInput.value)
})
function renderTooltip() {
sliderTracker.innerHTML = sliderInput.value
}<input class="slider" type="range" name="slider" min="0.5" max="3" value="1.5" step="0.25">
<div class="slider-tracker"><span>0.5</span></div>
<button class="minus">subtract</button>
<button class="plus">add</button>
https://stackoverflow.com/questions/53713271
复制相似问题