SegmentedButton 分段按钮
分段按钮组件封装了一组按钮,用于提供选项、切换视图或对元素进行排序等。
使用方法
按需导入组件:
import 'mdui/components/segmented-button-group.js';
import 'mdui/components/segmented-button.js';
按需导入组件的 TypeScript 类型:
import type { SegmentedButtonGroup } from 'mdui/components/segmented-button-group.js';
import type { SegmentedButton } from 'mdui/components/segmented-button.js';
使用示例:
<mdui-segmented-button-group>
<mdui-segmented-button>Day</mdui-segmented-button>
<mdui-segmented-button>Week</mdui-segmented-button>
<mdui-segmented-button>Month</mdui-segmented-button>
</mdui-segmented-button-group>
单选模式
在 <mdui-segmented-button-group>
元素上指定 selects
属性为 single
,可以实现单选模式。此时 <mdui-segmented-button-group>
的 value
属性值即为当前选中的 <mdui-segmented-button>
的 value
属性的值。
多选模式
在 <mdui-segmented-button-group>
元素上指定 selects
属性为 multiple
,可以实现多选模式。此时 <mdui-segmented-button-group>
的 value
属性值为当前选中的 <mdui-segmented-button>
的 value
属性的值组成的数组。
注意:在多选模式下,<mdui-segmented-button-group>
的 value
属性值为数组,只能通过 JavaScript 属性来读取和设置该值。
图标
在 <mdui-segmented-button>
元素上,通过设置 icon
和 end-icon
属性,可以在按钮的左侧和右侧添加 Material Icons 图标。另外,也可以通过 icon
和 end-icon
slot 在按钮的左侧和右侧添加元素。
在 <mdui-segmented-button>
元素上,通过添加 selected-icon
属性,可以设置选中状态的 Material Icons 图标。也可以通过 selected-icon
slot 进行设置。
链接
在 <mdui-segmented-button>
元素上,通过设置 href
属性,可以将按钮转换为链接。此时,还可以使用与链接相关的属性,如:download
、target
、rel
。
禁用及加载中状态
在 <mdui-segmented-button-group>
元素上,通过添加 disabled
属性,可以禁用整个分段按钮组。
在 <mdui-segmented-button>
元素上,通过添加 disabled
属性,可以禁用特定按钮;通过添加 loading
属性,可以为特定按钮添加加载中状态。
mdui-segmented-button-group
API
属性
HTML 属性 | JavaScript 属性 | Reflect | 类型 | 默认值 |
---|---|---|---|---|
full-width | fullWidth | boolean | false | |
是否填满父元素宽度 | ||||
selects | selects | 'single' | 'multiple' | - | |
分段按钮的可选中状态,默认为不可选中。可选值包括:
| ||||
disabled | disabled | boolean | false | |
是否为禁用状态 | ||||
required | required | boolean | false | |
提交表单时,是否必须选中 | ||||
form | form | string | - | |
关联的 如果未指定此属性,则该元素必须是 | ||||
name | name | string | '' | |
提交表单时的名称,将与表单数据一起提交 | ||||
value | value | string | string[] | '' | |
当前选中的 Note:该属性的 HTML 属性始终为字符串,且仅在 | ||||
defaultValue | string | string[] | '' | ||
默认选中的值。在重置表单时,将重置为该默认值。该属性只能通过 JavaScript 属性设置 | ||||
validity | ValidityState | - | ||
表单验证状态对象,具体参见 | ||||
validationMessage | string | - | ||
如果表单验证未通过,此属性将包含提示信息。如果验证通过,此属性将为空字符串 |
方法
名称 | 参数 | 返回值 |
---|---|---|
checkValidity | boolean | |
检查表单字段是否通过验证。如果未通过,返回 | ||
reportValidity | boolean | |
检查表单字段是否通过验证。如果未通过,返回 如果验证未通过,还会在组件上显示验证失败的提示。 | ||
setCustomValidity |
| void |
设置自定义的错误提示文本。只要这个文本不为空,就表示字段未通过验证 |
CSS 自定义属性
名称 |
---|
--shape-corner |
组件的圆角大小。可以指定一个具体的像素值;但更推荐引用设计令牌 |
mdui-segmented-button
API
属性
HTML 属性 | JavaScript 属性 | Reflect | 类型 | 默认值 |
---|---|---|---|---|
icon | icon | string | - | |
左侧的 Material Icons 图标名。也可以通过 | ||||
end-icon | endIcon | string | - | |
右侧的 Material Icons 图标名。也可以通过 | ||||
selected-icon | selectedIcon | string | - | |
选中状态的 Material Icons 图标名。也可以通过 | ||||
href | href | string | - | |
链接的目标 URL。 如果设置了此属性,组件内部将渲染为 | ||||
download | download | string | - | |
下载链接的目标。 Note:仅在设置了 | ||||
target | target | '_blank' | '_parent' | '_self' | '_top' | - | |
链接的打开方式。可选值包括:
Note:仅在设置了 | ||||
rel | rel | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag' | - | |
当前文档与被链接文档之间的关系。可选值包括:
Note:仅在指定了 | ||||
autofocus | autofocus | boolean | false | |
是否在页面加载完成后自动获取焦点 | ||||
tabindex | tabIndex | number | - | |
元素在使用 Tab 键切换焦点时的顺序 | ||||
disabled | disabled | boolean | false | |
是否禁用 | ||||
loading | loading | boolean | false | |
是否处于加载中状态 | ||||
name | name | string | '' | |
按钮的名称,将与表单数据一起提交。 Note:仅在未设置 | ||||
value | value | string | '' | |
按钮的初始值,将与表单数据一起提交。 Note:仅在未设置 | ||||
type | type | 'submit' | 'reset' | 'button' | 'button' | |
按钮的类型。默认类型为
Note:仅在未指定 | ||||
form | form | string | - | |
关联的 如果未指定此属性,则该元素必须是 Note:仅在未指定 | ||||
formaction | formAction | string | - | |
指定提交表单的 URL。 如果指定了此属性,将覆盖 Note:仅在未指定 | ||||
formenctype | formEnctype | 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain' | - | |
指定提交表单到服务器的内容类型。可选值包括:
如果指定了此属性,将覆盖 Note:仅在未指定 | ||||
formmethod | formMethod | 'post' | 'get' | - | |
指定提交表单时使用的 HTTP 方法。可选值包括:
如果设置了此属性,将覆盖 Note:仅在未设置 | ||||
formnovalidate | formNoValidate | boolean | false | |
如果设置了此属性,表单提交时将不执行表单验证。 如果设置了此属性,将覆盖 Note:仅在未设置 | ||||
formtarget | formTarget | '_self' | '_blank' | '_parent' | '_top' | - | |
提交表单后接收到的响应应显示在何处。可选值包括:
如果设置了此属性,将覆盖 Note:仅在未设置 | ||||
validity | ValidityState | - | ||
表单验证状态对象,具体参见 | ||||
validationMessage | string | - | ||
如果表单验证未通过,此属性将包含提示信息。如果验证通过,此属性将为空字符串 |
方法
名称 | 参数 | 返回值 |
---|---|---|
click | void | |
模拟鼠标点击元素 | ||
focus |
| void |
将焦点设置到当前元素。 可以传入一个对象作为参数,该对象的属性包括:
| ||
blur | void | |
移除当前元素的焦点 | ||
checkValidity | boolean | |
检查表单字段是否通过验证。如果未通过,返回 | ||
reportValidity | boolean | |
检查表单字段是否通过验证。如果未通过,返回 如果验证未通过,还会在组件上显示验证失败的提示。 | ||
setCustomValidity |
| void |
设置自定义的错误提示文本。只要这个文本不为空,就表示字段未通过验证 |
Slots
名称 |
---|
默认 |
分段按钮项的文本内容 |
icon |
分段按钮项的左侧图标 |
selected-icon |
选中状态的左侧图标 |
end-icon |
分段按钮项的右侧图标 |