uni-app 滑动刻度尺插件需求

发布于 1周前 作者 eggper 来自 Uni-App

uni-app 滑动刻度尺插件需求

需要一个滑动刻动尺,手指左移或右移,然后返回对应的数值 。一般用来选择身高或体重。

5 回复

同求,最后解决了吗?


专业插件开发,加Q 1196097915

可以做,联系QQ:1804945430

中间商不容易啊

针对您提出的uni-app滑动刻度尺插件需求,以下是一个简单的实现案例。我们将使用uni-app结合Vue.js来构建一个自定义的滑动刻度尺组件。这个组件将允许用户通过滑动来选择一个数值,并在刻度尺上显示相应的刻度。

首先,我们创建一个名为SliderRule.vue的组件文件:

<template>
  <view class="slider-rule">
    <view class="rule-container">
      <view v-for="(mark, index) in marks" :key="index" class="rule-mark" :style="{ left: `${mark.position}%` }">
        {{ mark.label }}
      </view>
    </view>
    <slider
      :value="currentValue"
      @change="onSliderChange"
      :min="minValue"
      :max="maxValue"
      class="slider"
    />
    <view class="value-display">{{ currentValue }}</view>
  </view>
</template>

<script>
export default {
  props: {
    minValue: {
      type: Number,
      default: 0
    },
    maxValue: {
      type: Number,
      default: 100
    },
    step: {
      type: Number,
      default: 1
    }
  },
  data() {
    return {
      currentValue: this.minValue
    };
  },
  computed: {
    marks() {
      const marks = [];
      for (let i = this.minValue; i <= this.maxValue; i += this.step) {
        marks.push({
          label: i,
          position: ((i - this.minValue) / (this.maxValue - this.minValue)) * 100
        });
      }
      return marks;
    }
  },
  methods: {
    onSliderChange(e) {
      this.currentValue = e.detail.value;
    }
  }
};
</script>

<style scoped>
.slider-rule {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.rule-container {
  position: relative;
  width: 100%;
  height: 50px;
  background-color: #f0f0f0;
}
.rule-mark {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  text-align: center;
}
.slider {
  width: 100%;
  margin-top: 10px;
}
.value-display {
  margin-top: 20px;
  font-size: 18px;
}
</style>

在上面的代码中,我们定义了一个SliderRule组件,它接收minValuemaxValuestep作为props,用于设置刻度尺的最小值、最大值和步长。组件内部使用slider组件实现滑动功能,并计算刻度位置来显示相应的刻度标记。

您可以在其他页面或组件中引入并使用这个SliderRule组件,例如:

<template>
  <view>
    <SliderRule :minValue="0" :maxValue="100" :step="1" />
  </view>
</template>

<script>
import SliderRule from '@/components/SliderRule.vue';

export default {
  components: {
    SliderRule
  }
};
</script>

这样,您就可以在uni-app项目中实现一个简单的滑动刻度尺插件。

回到顶部