013_Slider滑块

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

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 

### 设置 LVGL 滑块的初始值、范围、模式及样式调整 在 LVGL 中,可以通过一系列 API 对滑块(`lv_slider`)进行初始化设置,包括设定初始值、范围、模式、样式以及布局属性。 #### 设置初始值与禁用动画 滑块的初始值可以通过 `lv_slider_set_value` 函数设置,并通过 `LV_ANIM_OFF` 参数禁用动画效果: ```c lv_slider_set_value(slider, 50, LV_ANIM_OFF); ``` 此设置确保滑块在初始化时不使用动画直接跳转到指定值 50 [^3]。 #### 设置滑块范围 滑块的取值范围可以通过 `lv_slider_set_range` 函数进行设置。例如,将滑块的最小值设为 0,最大值设为 100: ```c lv_slider_set_range(slider, 0, 100); ``` 该设置定义了用户可以拖动的值域范围 [^3]。 #### 设置滑块模式 滑块支持多种模式,包括 `LV_SLIDER_MODE_NORMAL`(普通模式)、`LV_SLIDER_MODE_SYMMETRICAL`(对称模式)和 `LV_SLIDER_MODE_RANGE`(范围模式)。推荐使用普通模式以避免滑块在释放后自动归零: ```c lv_slider_set_mode(slider, LV_SLIDER_MODE_NORMAL); ``` 普通模式确保滑块在释放后保持当前值 [^3]。 #### 设置滑块尺寸与布局 滑块的尺寸可以通过 `lv_obj_set_size` 设置宽度和高度,例如设置宽度为 150,高度为 20: ```c lv_obj_set_size(slider, 150, 20); ``` 滑块的位置可以通过 `lv_obj_set_pos` 设置其左上角坐标,例如设置 X 为 50,Y 为 2: ```c lv_obj_set_pos(slider, 50, 2); ``` 若希望滑块居中对齐,可使用 `lv_obj_align` 函数,例如将其居中对齐到父对象: ```c lv_obj_align(slider, LV_ALIGN_CENTER, 0, 0); ``` 该设置将滑块水平和垂直居中 [^3]。 #### 条件判断调整内边距 内边距(padding)可以通过样式进行设置。例如,根据条件判断是否添加额外的内边距: ```c if (some_condition) { lv_obj_set_style_pad_all(slider, 10, LV_PART_INDICATOR); } ``` 该设置为滑块的指示器部分添加内边距,具体值可以根据实际需求进行调整 [^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值