组件:滑块条

滑块条组件允许用户通过拖拽滑块在指定数值范围内选择一个值,支持自定义步长、范围,并提供实时的数值回调。适用于音量调节、亮度控制、价格筛选、评分设置等需要连续或离散数值输入的场景。

典型使用场景:

  • 音量/亮度/速度调节(媒体播放器、系统设置)
  • 价格区间筛选(电商商品筛选)
  • 数值精细调节(图像处理参数、图表控制)
  • 评分或满意度调查(滑动评分)

📌 继承自视图的成员速查

本组件继承自 视图 类,可直接使用以下属性和方法:

属性: ID、左边、顶边、右边、底边、宽度、高度、背景、背景颜色、背景图像、文本、文本颜色、字体、字体大小、字体粗细、行高、边框、边框圆角、边框宽度、光标样式、显示模式、透明度、外边距、外边距底、外边距左、外边距右、外边距顶、最大高度、最大宽度、最小高度、最小宽度、内边距、内边距底、内边距左、内边距右、内边距顶、定位、CLASS、InnerHTML、OuterHTML、内容水平对齐方式、首行缩进、可视、显示层级、内联样式、禁用

方法: 追加内联样式(样式文本)、置内联样式(名称,值)、取内联样式值(名称)、取Style对象()、添加事件(事件名称, 回调函数)、删除事件(事件名称, 回调函数)、获取焦点()、清除焦点()、添加样式类(类名称)、移除样式类(类名称)、取样式类列表()、取样式类()、执行单击()、取属性值(属性名)、取属性节点(属性名)、取布局参数()、取渲染宽度()、取渲染高度()、取渲染顶边()、取渲染左边()、左侧对齐到(目标组件,偏移量)、右侧对齐到(目标组件,偏移量)、顶边对齐到(目标组件,偏移量)、底边对齐到(目标组件,偏移量)、右侧对齐到左(目标组件, 偏移量)、左侧对齐到右(目标组件, 偏移量)、底边对齐到顶(目标组件, 偏移量)、顶边对齐到底(目标组件, 偏移量)、有指定属性(属性名)、有属性()、内容可编辑()、包含CSS类(类名)、取命名空间()、取下个节点()、取下个元素()、取节点名称()、取节点类型()、取父节点()、取父元素()、取上个节点()、取上个元素()、销毁()、删除属性(属性名)、删除属性节点(属性名)、置属性值(属性名, 属性值)、置属性节点(属性节点)、取标签名()、移动(左边 顶边, 宽度, 高度)、取原生对象()、置被单击回调(回调函数)、置被双击回调(回调函数)、置鼠标被进入回调(回调函数)、置鼠标被移出回调(回调函数)、置鼠标被移动回调(回调函数)、置鼠标被按下回调(回调函数)、置鼠标被抬起回调(回调函数)、置鼠标滚轮被滚动回调(回调函数)、置键盘被按下回调(回调函数)、置按键被抬起回调(回调函数)、置按键被压下回调(回调函数)、置被失去焦点回调(回调函数)、置被获得焦点回调(回调函数)

事件: 被单击(源对象,事件源)、被双击(源对象,事件源)、鼠标被进入(源对象,事件源)、鼠标被移出(源对象,事件源)、鼠标被移动(源对象,事件源)、鼠标被按下(源对象,事件源)、鼠标被抬起(源对象,事件源)、鼠标滚轮被滚动(源对象,事件源)、键盘被按下(源对象,事件源)、按键被抬起(源对象,事件源)、按键被压下(源对象,事件源)、被失去焦点(源对象,事件源)、被获得焦点(源对象,事件源)

💡 完整成员列表及详细说明请参考:视图


常用操作速查

操作属性/方法示例
设置取值范围最小值 / 最大值滑块条1.最小值 = 0滑块条1.最大值 = 200
设置步长(每次变化量)步长滑块条1.步长 = 5
设置当前值进度值滑块条1.进度值 = 75
禁用/启用滑块禁用滑块条1.禁用 = 真
设置值改变回调置滑块位置被改变回调(回调函数)滑块条1.置滑块位置被改变回调((源对象, 当前值) => { ... })

样式美化参考

滑块条组件的外观主要通过继承的视图属性进行整体调整:

  • 整体尺寸:通过 宽度高度 控制滑块轨道长度和粗细。通常宽度较大,高度较小(如 宽度 = 300高度 = 6)。
  • 轨道背景:通过 背景颜色 设置轨道的底色(未填充部分),通过 背景 可设置更复杂的渐变或图像。
  • 滑块颜色:滑块按钮的颜色由组件内部控制,一般跟随主题色,暂不支持直接自定义(可通过 CSS 类间接调整)。
  • 禁用状态:当 禁用 = 真 时,滑块会变灰且不可拖动,同时可通过 透明度光标样式 增强视觉反馈。

基础示例

一个基本的音量调节滑块,范围 0~100,步长 1,默认 50。

变量 滑块条1 = 创建 滑块条()
滑块条1.左边 = 50
滑块条1.顶边 = 100
滑块条1.宽度 = 300
滑块条1.高度 = 8
滑块条1.最小值 = 0
滑块条1.最大值 = 100
滑块条1.步长 = 1
滑块条1.进度值 = 50

滑块条1.置滑块位置被改变回调((源对象, 当前值) => {
    ' 更新显示标签
    标签_音量.文本 = "音量:" + 当前值 + "%"
})

添加组件(滑块条1)

综合示例:价格筛选与实时显示

本示例在电商场景中,通过两个滑块分别设置最低价和最高价,并实时显示筛选区间。

' ========== 创建最低价滑块 ==========
变量 标签_最低 = 创建 标签()
标签_最低.左边 = 20
标签_最低.顶边 = 20
标签_最低.文本 = "最低价:0 元"
标签_最低.字体大小 = 14
添加组件(标签_最低)

变量 滑块_最低 = 创建 滑块条()
滑块_最低.左边 = 20
滑块_最低.顶边 = 50
滑块_最低.宽度 = 280
滑块_最低.最小值 = 0
滑块_最低.最大值 = 1000
滑块_最低.步长 = 10
滑块_最低.进度值 = 0
添加组件(滑块_最低)

' ========== 创建最高价滑块 ==========
变量 标签_最高 = 创建 标签()
标签_最高.左边 = 20
标签_最高.顶边 = 100
标签_最高.文本 = "最高价:1000 元"
标签_最高.字体大小 = 14
添加组件(标签_最高)

变量 滑块_最高 = 创建 滑块条()
滑块_最高.左边 = 20
滑块_最高.顶边 = 130
滑块_最高.宽度 = 280
滑块_最高.最小值 = 0
滑块_最高.最大值 = 1000
滑块_最高.步长 = 10
滑块_最高.进度值 = 1000
添加组件(滑块_最高)

' ========== 显示当前区间 ==========
变量 标签_区间 = 创建 标签()
标签_区间.左边 = 20
标签_区间.顶边 = 180
标签_区间.宽度 = 300
标签_区间.文本 = "当前筛选价格区间:0 - 1000 元"
标签_区间.字体大小 = 16
标签_区间.文本颜色 = "#1890ff"
添加组件(标签_区间)

' ========== 回调绑定 ==========
' 最低价变动
滑块_最低.置滑块位置被改变回调((源对象, 当前值) => {
    标签_最低.文本 = "最低价:" + 当前值 + " 元"
    ' 确保最低价不超过最高价
    变量 最高值 = 滑块_最高.进度值
    如果(当前值 > 最高值)
        滑块_最低.进度值 = 最高值
        当前值 = 最高值
    结束 如果
    更新区间显示(当前值, 滑块_最高.进度值)
})

' 最高价变动
滑块_最高.置滑块位置被改变回调((源对象, 当前值) => {
    标签_最高.文本 = "最高价:" + 当前值 + " 元"
    ' 确保最高价不低于最低价
    变量 最低值 = 滑块_最低.进度值
    如果(当前值 < 最低值)
        滑块_最高.进度值 = 最低值
        当前值 = 最低值
    结束 如果
    更新区间显示(滑块_最低.进度值, 当前值)
})

' ========== 辅助函数更新区间标签 ==========
函数 更新区间显示(最低, 最高)
    标签_区间.文本 = "当前筛选价格区间:" + 最低 + " - " + 最高 + " 元"
结束 函数

属性详解

最小值

  • 类型: 数值型
  • 说明: 设置或获取滑块允许的最小值,默认 0。当滑块拖动或通过代码设置 进度值 时,不能低于此值。

最大值

  • 类型: 数值型
  • 说明: 设置或获取滑块允许的最大值,默认 100。当滑块拖动或通过代码设置 进度值 时,不能高于此值。

步长

  • 类型: 数值型
  • 说明: 设置或获取每次拖动时的步进增量,默认 1。例如步长为 10 时,滑块值只会是 0、10、20、...,无法停留在中间值。

进度值

  • 类型: 数值型
  • 说明: 设置或获取当前滑块的位置(当前值),必须在 最小值最大值 范围内。默认 0。设置后会自动调整滑块视觉位置。

禁用

  • 类型: 逻辑型
  • 说明: 设置或获取滑块是否被禁用。当为 时,滑块不可拖动,且样式变灰(由浏览器默认行为控制)。

函数详解

置进度值(值)

  • 功能: 以编程方式设置滑块当前值,效果等同于直接修改 进度值 属性。
  • 参数: (数值型),必须介于 最小值最大值 之间。
  • 返回值: 无。
  • 示例: 滑块条1.置进度值(75)

置滑块位置被改变回调(回调函数)

  • 功能: 设置当滑块值发生变化时的回调函数。变化来源包括用户拖拽和通过代码修改(置进度值 或直接赋值 进度值 都会触发)。
  • 参数: 回调函数,拉姆达表达式,格式为 (源对象, 当前值) => { ... }
    • 源对象:触发事件的滑块组件本身。
    • 当前值:变化后的数值(类型为数值型)。
  • 示例:
    滑块条1.置滑块位置被改变回调((源对象, 当前值) => {
        调试输出("当前值:" + 当前值)
    })
    

事件:滑块位置被改变(源对象,当前值)

  • 功能:置滑块位置被改变回调 等效,适用于设计文件(.spldg)中定义的组件,采用 VB6 风格绑定。
  • 参数: 源对象(滑块组件),当前值(当前数值)。
  • 示例(仅限设计文件组件):
    事件 滑块条1.滑块位置被改变(源对象, 当前值)
        标签_显示.文本 = "当前值:" + 当前值
    结束 事件
    

⚠️ 注意事项

  1. 取值范围校验:若通过代码设置 进度值 超出 最小值~最大值 范围,会自动被裁剪到边界值,不会报错。
  2. 步长影响:当 步长 不为 1 时,用户拖拽和代码设置值都会自动对齐到最近的步长倍数。例如步长 = 5,设置 进度值 = 7 会实际变为 5 或 10(取决于舍入方式,通常向下取整)。
  3. 精度问题进度值 为数值型,浮点数也可作为步长(如 0.1),但需注意 JavaScript 浮点数精度。
  4. 实时回调:在拖拽过程中,回调会持续触发(每次鼠标移动都会更新),请确保回调中的逻辑尽量轻量,避免性能问题。
  5. 禁用状态禁用 属性可控制滑块是否可交互,但视觉变化由浏览器原生样式决定,可能在不同浏览器中略有差异。
  6. 尺寸适配:滑块条的高度一般建议设置较小(如 4~8px),以便呈现细长的轨道;宽度则根据布局需求设置。

相关文档

  • 文档框架基础类_视图 —— 视图类提供的所有通用属性和方法
  • 文档滑块进度类_进度条 —— 同类别组件参考
  • 文档滑块进度类_步骤条 —— 流程引导组件
  • 文档轻语言网站:轻语言语法速查 —— 拉姆达表达式、数值类型等
  • 文档综合演示:价格筛选器 —— 滑块条的实际应用场景