设置范围滑块的最小处理程序值

时间:2020-01-13 12:42:09

标签: javascript algorithm

在我的应用中,我有一个范围滑块-输入组合组件:

enter image description here

用户可以使用滑块或输入来更改范围。最大范围是最小值的30%,例如:如果最小值是1000,则最大范围可以是300。因此,如果用户将最大值移动到1400,则滑块会将其最小值调整到1100。

enter image description here

另一个示例,如果用户将最大值拖动到8000,则滑块的最小范围值将是6200。由于滑块的步长是100,因此范围值将四舍五入到最接近的一百个整数。

现在我不能解决的问题:

如果用户直接通过输入设置最大值(因为它应该是最小值的30%),那么如何计算最大值范围?这就是我的应用现在处理这种情况的方式(它使用在应用init上设置的初始300范围):

enter image description here

有什么主意我该如何解决这个问题?

编辑: 当前是这样实现的:

  • 如果值(最小值/最大值)更改,则应用将计算范围max - min
  • 允许的最大范围是(0.3 / 100) * min
  • 如果范围超出允许的范围,则将最小值设置为max - (0.3 / 100) * min

1 个答案:

答案 0 :(得分:1)

如果我正确地理解了您的意见,并且希望通过用户输入来设置最大值,那么您将基于最大值来计算最小值。

无论如何,只要舍入范围滑块值,就可以像这样基于最大值来计算最小值:

max - (0.233 / 100) * max

当然,只有在更改最大值时,才应以此方式计算。 该解决方案不是完美的,而是近似的。希望它能解决问题。