013_Slider滑块

本文详细介绍了Element UI中的Slider滑块组件,包括其基本用法、属性、事件及示例。滑块组件可用于在指定范围内进行选择,支持自定义初始值、步长、显示间断点、输入框等功能。此外,还展示了范围选择、竖向模式以及标记展示的使用方法,并提供了两个实际应用的例子:基础滑块和范围滑块。通过这些示例,读者可以了解如何在Vue项目中灵活运用Slider组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Slider滑块

1.1. 通过拖动滑块在一个固定区间内进行选择。

1.2. Slider属性

参数

说明

类型

可选值

默认值

value / v-model

绑定值

number

0

min

最小值

number

0

max

最大值

number

100

disabled

是否禁用

boolean

false

step

步长

number

1

show-input

是否显示输入框, 仅在非范围选择时有效

boolean

false

show-input-controls

在显示输入框的情况下, 是否显示输入框的控制按钮

boolean

true

input-size

输入框的尺寸

string

large / medium / small / mini

small

show-stops

是否显示间断点

boolean

false

show-tooltip

是否显示tooltip

boolean

true

format-tooltip

格式化tooltip message

function(value)

range

是否为范围选择

boolean

false

vertical

是否竖向模式

boolean

false

height

Slider高度, 竖向模式时必填

string

label

屏幕阅读器标签

string

debounce

输入时的去抖延迟, 毫秒, 仅在show-input等于true时有效

number

300

tooltip-class

tooltip的自定义类名

string

marks

标记, key的类型必须为number且取值在闭区间[min, max]内, 每个标记可以单独设置样式

object

1.3. Slider事件

事件名称

说明

回调参数

change

值改变时触发(使用鼠标拖曳时, 只在松开鼠标后触发)

改变后的值

input

数据改变时触发(使用鼠标拖曳时, 活动过程实时触发)

改变后的值

2. Slider滑块例子

2.1. 使用脚手架新建一个名为element-ui-slider的前端项目, 同时安装Element插件。

2.2. 编写App.vue 

<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'app'
}
</script>

<style>
  #app {
    width: 600px;
    margin: 0 0 50px 10px;
  }
</style>

2.3. 编写index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import Slider from '../components/Slider.vue'
import RangeSlider from '../components/RangeSlider.vue'

Vue.use(VueRouter)

const routes = [
  { path: '/', redirect: '/Slider' },
  { path: '/Slider', component: Slider },
  { path: '/RangeSlider', component: RangeSlider }
]

const router = new VueRouter({
  routes
})

export default router

2.4. 在components下创建Slider.vue

<template>
  <div>
    <h1>基础用法</h1>
    <h4>在拖动滑块时, 显示当前值。通过设置绑定值自定义滑块的初始值。</h4>
    <div class="block">
      <span>默认</span>
      <el-slider v-model="base_value1"></el-slider>
    </div>
    <div class="block">
      <span>自定义初始值</span>
      <el-slider v-model="base_value2"></el-slider>
    </div>
    <div class="block">
      <span>隐藏 Tooltip</span>
      <el-slider v-model="base_value3" :show-tooltip="false"></el-slider>
    </div>
    <div class="block">
      <span>格式化 Tooltip</span>
      <el-slider v-model="base_value4" :format-tooltip="formatTooltip"></el-slider>
    </div>
    <div class="block">
      <span>禁用</span>
      <el-slider v-model="base_value5" disabled></el-slider>
    </div>

    <h1>离散值-选项可以是离散的</h1>
    <h4>改变step的值可以改变步长, 通过设置show-stops属性可以显示间断点。</h4>
    <div class="block">
      <span>不显示间断点</span>
      <el-slider v-model="step_value1" :step="10"></el-slider>
    </div>
    <div class="block">
      <span>显示间断点</span>
      <el-slider v-model="step_value2" :step="10" show-stops></el-slider>
    </div>

    <h1>带有输入框-通过输入框设置精确数值</h1>
    <h4>设置show-input属性会在右侧显示一个输入框。</h4>
    <div class="block">
      <el-slider v-model="input_value" show-input></el-slider>
    </div>
  </div>
</template>

<script>
export default {
  data () {
    return {
      base_value1: 0,
      base_value2: 50,
      base_value3: 36,
      base_value4: 48,
      base_value5: 42,
      step_value1: 0,
      input_value: 0
    }
  },
  methods: {
    formatTooltip (val) {
      return val / 100
    }
  }
}
</script>

2.5. 在components下创建RangeSlider.vue

<template>
  <div>
    <h1>范围选择-支持选择某一数值范围</h1>
    <h4>设置range即可开启范围选择, 此时绑定值是一个数组, 其元素分别为最小边界值和最大边界值。</h4>
    <div class="block">
      <el-slider v-model="range_value" range show-stops :max="10"></el-slider>
    </div>

    <h1>竖向模式</h1>
    <h4>设置vertical可使Slider变成竖向模式, 此时必须设置高度height属性。</h4>
    <div class="block">
      <el-slider v-model="vertical_value" vertical height="200px"></el-slider>
    </div>

    <h1>展示标记</h1>
    <h4>设置marks属性可以展示标记。</h4>
    <div class="block">
      <el-slider v-model="value" range :marks="marks"></el-slider>
    </div>
  </div>
</template>

<script>
export default {
  data () {
    return {
      range_value: [4, 8],
      vertical_value: 0,
      value: [30, 60],
      marks: {
        0: '0°C',
        8: '8°C',
        37: '37°C',
        50: {
          style: {
            color: '#1989FA'
          },
          label: this.$createElement('strong', '50%')
        }
      }
    }
  }
}
</script>

2.6. 运行项目, 访问http://localhost:8080/#/Slider

2.7. 运行项目, 访问http://localhost:8080/#/RangeSlider 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值