为了账号安全,请及时绑定邮箱和手机立即绑定

在键盘上设置范围滑块进度

在键盘上设置范围滑块进度

慕后森 2021-10-14 12:57:36
所以我得到了输入类型范围,它工作正常,输入框,当用户输入数字 10-500 它在范围上设置值,我需要在范围内设置进度的颜色。现在它显示了以前的值。var textInputKg = document.getElementById("text");var rangeInputKg = document.getElementById("range");function rangeProgress(to, from) {  var min = rangeInputKg.min;  var max = rangeInputKg.max;  var value = rangeInputKg.value;  var p = ((value - min) / (max - min)) * 100;  rangeInputKg.style.backgroundImage =    "-webkit-gradient(linear, left top, right top, " +    "color-stop(" +    p +    "%, yellow), " +    "color-stop(" +    p +    "%, black)" +    ")";  to.value = from.value;}function delay(fn, ms) {  let timer = 0;  return function(...args) {    clearTimeout(timer);    timer = setTimeout(fn.bind(this, ...args), ms || 0);  };}rangeInputKg.addEventListener("input", e => {  rangeProgress(textInputKg, rangeInputKg);});textInputKg.addEventListener(  "keyup",  delay(e => {    rangeProgress(rangeInputKg, textInputKg);    console.log(textInputKg.value);  }, 500));#range {  outline: none;  -webkit-appearance: none;  width: 100%;  height: 15px;  border-radius: 10px;  background: black;}<input id="range" type="range" max="500" min="10" value="10" autocomplete="off"><input id="text">
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

使用from参数值


var p = ((value - min) / (max - min)) * 100;


var p = ((from.value - min) / (max - min)) * 100;

var textInputKg = document.getElementById("text");

var rangeInputKg = document.getElementById("range");


function rangeProgress(to, from) {

  var min = rangeInputKg.min;

  var max = rangeInputKg.max;

  var p = ((from.value - min) / (max - min)) * 100;

  rangeInputKg.style.backgroundImage =

    "-webkit-gradient(linear, left top, right top, " +

    "color-stop(" +

    p +

    "%, yellow), " +

    "color-stop(" +

    p +

    "%, black)" +

    ")";

  to.value = from.value;

}


function delay(fn, ms) {

  let timer = 0;

  return function(...args) {

    clearTimeout(timer);

    timer = setTimeout(fn.bind(this, ...args), ms || 0);

  };

}


rangeInputKg.addEventListener("input", e => {

  rangeProgress(textInputKg, rangeInputKg);

});


textInputKg.addEventListener(

  "keyup",

  delay(e => {

    rangeProgress(rangeInputKg, textInputKg);

  }, 500)

);

#range {

  outline: none;

  -webkit-appearance: none;

  width: 100%;

  height: 15px;

  border-radius: 10px;

  background: black;

}

<input id="range" type="range" max="500" min="10" value="10" autocomplete="off">

<input id="text">


查看完整回答
反对 回复 2021-10-14
  • 1 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信