无法达到最大输入类型范围

  • 本文关键字:类型 范围 html
  • 更新时间 :
  • 英文 :


我试图达到105的最大值。但我做不到。有可能打到105吗?下面的代码,

<input type="range" min="0" step="10" max="105">

当然,只需将步长更改为5:

<input type="range" min="0" step="5" max="105">

否则你将无法以10步到达105:

105 % 10 = 5

你总是会得到5个休息时间,这是不可达到的(在你的感觉)

当你不能改变步长和起点时,你可以在最高点时将范围切换到100%吗?
你真正想要的是不可能的。即使手动设置输入也不会工作,因为输入在任何状态下都不会将105作为定义的有效值。
你可以添加一个较低的步进率,然后通过javascript修正它:

function correct(nValue, nMin, nStep, nMax, nCorrectStep){ // correct(int, int, int, int, int): int
console.log("Input: "+nValue); // DEBUG
if(nValue == nMin+Math.floor((nMax-nMin)/nStep)*nStep){ // pull up to max value that is a valid value after html attributes but not a correct value after the else block below
console.log("Output: "+nMax); // DEBUG
return nMax;
}
else{
console.log("Output: "+(nMin+Math.floor((nValue-nMin)/nCorrectStep)*nCorrectStep)); // DEBUG
return nMin+Math.floor((nValue-nMin)/nCorrectStep)*nCorrectStep; // round down to next valid step by multiply nCorrectStep again after downward adjusted dividing with nCorrectStep
}
}
<input type="range" min="0" step="5" max="105" value="0" onchange="this.value = correct(parseInt(this.value), parseInt(this.min), parseInt(this.step), parseInt(this.max), 10);"/>

相关内容

  • 没有找到相关文章

最新更新