如何使用 Vue Range Slider 将一系列数字从一个点更改为另一个点

How to change a range of numbers from one point to another using Vue Range Slider

我正在使用 npm package vue-custom-range-slider 但是我有一个问题,我的滑块分为蓝、绿、黄、红四种颜色,看起来像这样

最小数量19和最大数量65

假设一个人可以选择某个年龄段的蓝色是1921绿色22的范围30 黄色 3149 最后一个红色在 [=33 以上=]50为了更容易理解的例子你可以看这张图

我使用线性渐变将滑块分成四种滑块颜色,现在让我解释一下这个问题。

我需要制作蓝色范围内的数字,即从1921的数字在蓝色范围内, 22 - 30在绿色里面31-49在黄色里面,上面50里面都是红色的

因为目前数字设置不正确,例如蓝色的数字设置为1930 以此类推

我建议查看此 code in codesandbox 以便更好地理解。

<template>
      <div class="slider-container">
        <custom-slider
          v-model="value"
          class="slider-containers"
          min="19"
          max="65"
          step="1"
        />
      </div>
</template>

<script>
import CustomSlider from "vue-custom-range-slider";
import "vue-custom-range-slider/dist/vue-custom-range-slider.css";

export default {
  name: "app",
  components: {
    CustomSlider,
  },
  data() {
    return {
      value: "0",
    };
  },
};
</script>

<style lang="scss">
$slider-track-background: linear-gradient(
  to right,
  #b9e3e2 25%,
  #bbf680 25%,
  #bbf680 50%,
  #ffe500 50%,
  #ffe500 75%,
  #e5809e 75%,
  #e5809e 100%
) !default;
</style>

将愤怒转换为百分比:

#b9e3e2 6.52173913%, //22
#bbf680 6.52173913%, 
#bbf680 26.08695652%, // 31
#ffe500 26.08695652%,
#ffe500 67.39130435%, // 50
#e5809e 67.39130435%,
#e5809e 100%

如果您希望颜色在不同年龄段之间发生变化,甚至可以这样。

#b9e3e2 5.434782609%, // 21.5
#bbf680 5.434782609%,
#bbf680 25%, // 30.5
#ffe500 25%,
#ffe500 66.30434783%, // 49.5
#e5809e 66.30434783%,
#e5809e 100%