【问题标题】:Set the range slider's min handler value设置范围滑块的最小处理程序值
【发布时间】:2020-04-30 04:21:26
【问题描述】:

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

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

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

现在我无法解决的问题:

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

知道如何解决这个问题吗?

编辑: 这是目前的实现方式:

  • 如果值(最小值/最大值)发生变化,应用程序将计算范围max - min
  • 计算最大允许范围(0.3 / 100) * min
  • 如果范围超出允许范围,设置最小值为max - (0.3 / 100) * min

【问题讨论】:

  • 到目前为止你尝试过什么?我们不知道您的组件是如何实现的
  • 我不明白你的问题是什么,如果你可以在拖动滑块时计算最小值,为什么在通过输入更改时不能使用完全相同的方法? (或者更简单,通过拖动新值触发更改)

标签: javascript algorithm


【解决方案1】:

如果我理解正确,如果最大值是通过用户输入设置的,那么您想根据最大值计算最小值。

无论如何,当您对范围滑块值进行四舍五入时,您可以根据最大值计算最小值,如下所示:

max - (0.233 / 100) * max

当然,只有当最大值改变时才应该这样计算。 这个解决方案不是完美的,而是一个近似值。希望它可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    相关资源
    最近更新 更多