,通过 v-model 绑定数据:…">
当前位置:首页 > VUE

用vue实现滑动输入条

2026-01-07 06:35:56VUE

使用 Vue 实现滑动输入条

使用原生 HTML5 input range 实现

在 Vue 模板中直接使用 <input type="range">,通过 v-model 绑定数据:

<template>
  <div>
    <input 
      type="range" 
      v-model="sliderValue" 
      min="0" 
      max="100"
      @input="handleInput"
    >
    <p>当前值: {{ sliderValue }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      sliderValue: 50
    }
  },
  methods: {
    handleInput(event) {
      console.log('当前值:', event.target.value);
    }
  }
}
</script>

自定义样式滑块

通过 CSS 覆盖原生样式实现自定义外观:

用vue实现滑动输入条

<template>
  <div class="custom-slider">
    <input 
      type="range" 
      v-model="sliderValue"
      min="0"
      max="100"
      class="slider"
    >
  </div>
</template>

<style>
.custom-slider {
  width: 300px;
  margin: 20px;
}

.slider {
  -webkit-appearance: none;
  width: 100%;
  height: 8px;
  border-radius: 4px;
  background: #ddd;
  outline: none;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #42b983;
  cursor: pointer;
}

.slider::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #42b983;
  cursor: pointer;
}
</style>

使用第三方库 vue-slider-component

安装专业滑块组件库:

npm install vue-slider-component --save

实现示例:

用vue实现滑动输入条

<template>
  <vue-slider 
    v-model="value" 
    :min="0" 
    :max="100"
    :tooltip="'always'"
    :height="6"
    :dot-size="20"
    :process-style="{ backgroundColor: '#42b983' }"
  />
</template>

<script>
import VueSlider from 'vue-slider-component'
import 'vue-slider-component/theme/default.css'

export default {
  components: {
    VueSlider
  },
  data() {
    return {
      value: 30
    }
  }
}
</script>

实现双向滑块(范围选择)

修改 vue-slider-component 配置:

<template>
  <vue-slider 
    v-model="rangeValue" 
    :min="0" 
    :max="100"
    :tooltip="'always'"
    :enable-cross="false"
    :lazy="true"
  />
</template>

<script>
import VueSlider from 'vue-slider-component'

export default {
  components: {
    VueSlider
  },
  data() {
    return {
      rangeValue: [20, 80]
    }
  }
}
</script>

添加刻度标记

在 vue-slider-component 中添加标记点:

<template>
  <vue-slider 
    v-model="value"
    :min="0"
    :max="100"
    :interval="10"
    :marks="marks"
  />
</template>

<script>
export default {
  data() {
    return {
      value: 50,
      marks: {
        0: '0°C',
        25: '25°C',
        50: '50°C',
        75: '75°C',
        100: '100°C'
      }
    }
  }
}
</script>

以上方法提供了从简单到复杂的滑动输入条实现方案,可根据项目需求选择合适的实现方式。原生方案适合简单需求,而第三方组件则提供更丰富的功能和更好的自定义能力。

标签: vue
分享给朋友:

相关文章

vue实现主页

vue实现主页

Vue 实现主页的基本步骤 创建一个 Vue 主页通常涉及以下几个关键步骤,从项目初始化到页面布局和功能实现。 初始化 Vue 项目 使用 Vue CLI 或 Vite 初始化项目。Vue CLI…

vue实现$.extend

vue实现$.extend

Vue 实现类似 jQuery 的 $.extend 功能 在 Vue 中实现类似 jQuery 的 $.extend 功能,可以通过多种方式完成。$.extend 主要用于合并多个对象的属性,Vue…

vue 实现工具

vue 实现工具

Vue 实现工具的方法 使用 Vue 实现工具功能可以通过多种方式完成,具体取决于工具的类型和需求。以下是几种常见的方法: 组件化实现 创建一个独立的 Vue 组件来封装工具功能。例如,实现一…

vue多选实现

vue多选实现

Vue 多选实现方法 基础实现(v-model + multiple) 在 Vue 中实现多选可以通过 <select> 元素的 multiple 属性结合 v-model 完成。v-mo…

vue 实现excel

vue 实现excel

Vue 实现 Excel 功能 前端导出 Excel 使用 xlsx 库可以轻松实现前端 Excel 导出功能。安装依赖: npm install xlsx 导出 Excel 示例代码: im…

vue cli 实现

vue cli 实现

Vue CLI 实现步骤 安装 Vue CLI 确保 Node.js 版本在 8.9 或以上。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 创建新项目…