更新记录

1.0.1(2026-03-30) 下载此版本

Slider 滑块组件,仿ELementUI-Slider 组件,适配微信小程序,h5,安卓app


平台兼容性

uni-app(5.05)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

ElSlider 滑块组件

组件简介

ElSlider 是一个功能丰富的滑块组件,支持单值和范围选择、水平/垂直布局、输入框联动、刻度标记、工具提示等特性。

适用于数值区间选择、进度控制等场景。


基础用法

<template>
  <el-slider v-model="value" :min="0" :max="100" />
</template>

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

属性(Props)

参数 说明 类型 默认值 可选值
value / v-model 绑定值,单值 Number,范围 Array Number / Array 0 -
min 最小值 Number 0 -
max 最大值 Number 100 -
disabled 是否禁用 Boolean false -
step 步长 Number 1 -
showInput 是否显示输入框(仅非范围模式) Boolean false -
showInputControls 是否显示输入框加减按钮 Boolean true -
inputSize 输入框尺寸 String small large / medium / small / mini
showStops 是否显示间断点 Boolean false -
showTooltip 是否显示工具提示 Boolean true -
formatTooltip 格式化 tooltip Function val => val -
range 是否范围选择 Boolean false -
vertical 是否垂直方向 Boolean false -
height 垂直高度 String 400rpx -
label 标签(预留) String '' -
debounce 输入防抖延迟(ms) Number 300 -
tooltipClass tooltip 类名 String '' -
marks 刻度标记配置 Object null -
reverse 是否反向 Boolean false -

marks 配置示例

marks: {
  0: '起点',
  25: '1/4',
  50: '中点',
  75: '3/4',
  100: {
    label: '终点',
    style: {
      color: '#f00',
      fontWeight: 'bold'
    }
  }
}

事件(Events)

事件名 说明 回调参数
input 滑动实时触发 Number / Array
update:value 同 input Number / Array
change 操作结束触发 Number / Array

方法(Methods)


插槽(Slots)


样式自定义

.slider-track .slider-range,
.slider-track .slider-bar {
  background-color: #ff6600;
}

.slider-thumb {
  background-color: #ff6600;
}

注意事项

  • range 为 true 时,value 必须为数组,例如 [20, 60]
  • vertical 模式必须设置 height
  • 设置 marks 后,showStops 失效
  • 输入框仅在单值模式生效
  • tooltip 默认拖拽时显示
  • 组件会自动响应窗口变化

完整示例

<template>
  <view class="demo">
    <el-slider v-model="value1" :min="0" :max="100" />

    <el-slider
      v-model="value2"
      :min="0"
      :max="100"
      range
      :marks="marks"
      show-stops
    />

    <el-slider
      v-model="value3"
      vertical
      height="300rpx"
      show-input
      :format-tooltip="(val) => `${val}%`"
    />
  </view>
</template>

<script>
export default {
  data() {
    return {
      value1: 30,
      value2: [20, 60],
      value3: 50,
      marks: {
        0: "0",
        25: "25",
        50: "50",
        75: "75",
        100: "100",
      },
    };
  },
};
</script>

更新日志

  • 初始版本,提供完整滑块功能

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议