Angular Material 提示框提供了一种文本标签,当用户的鼠标悬停或长按某个元素时,它就会显示出来。

提示框将会显示在本元素的下方,但可以使用输入属性 matTooltipPosition 进行配置。 提示框可以显示在元素的上方、下方、左侧或右侧,默认是下方。如果希望该提示框在 RTL 布局下自动调换左右位置,则应该用 beforeafter 代替 leftright

位置 描述
above 始终显示在元素上方
below 始终显示在元素下方
left 始终显示在元素左侧
right 始终显示在元素右侧
before 在从左到右的布局中显示在左侧,在从右到左的布局中显示在右侧
after 在从左到右的布局中显示在右侧,在从右到左的布局中显示在左侧

根据显示工具提示的位置, .mat-tooltip-panel 元素将接收可用于样式的 CSS 类(例如添加箭头)。可能的类是 mat-tooltip-panel-abovemat-tooltip-panel-belowmat-tooltip-panel-leftmat-tooltip-panel-right

要显示相对于触发它的鼠标或触控的工具提示,请使用 matTooltipPositionAtOrigin 输入属性。启用此设置后,工具提示将相对于触发器的原点而不是宿主元素显示。在工具提示不是由触控事件或鼠标单击触发的情况下,它的显示方式与此设置关闭时的显示方式相同。

默认情况下,当用户把鼠标移到到触发器元素上时,提示框会立刻显示出来;鼠标离开时会立刻隐藏。

在移动设备上,当用户 "长按" 触发器元素时会显示提示框,延迟 1500ms 后自动隐藏。

要想在显示或隐藏提示框之前添加延迟,可以使用输入属性 matTooltipShowDelaymatTooltipHideDelay 来以毫秒为单位指定延迟时间。

下面的例子中的提示框会在鼠标移到按钮上之后等待一秒钟再显示,当鼠标移开时等待两秒钟再隐藏。

你可以使用依赖注入令牌 MAT_TOOLTIP_DEFAULT_OPTIONS 提供一个选项,来配置应用中提示框的默认显示/隐藏延迟。

要想手动显示或隐藏提示框,你可以调用该指令的 showhide 方法,它们可以接受一个以毫秒为单位的数字作为延迟时间。

要完全禁用提示框,请设置 matTooltipDisabled。禁用之后,则永远不会显示出提示框。

MatTooltip 会添加一个 aria-describedby 描述,它指向一个包含提示信息的不可见元素。 当最终用户把焦点移到用于触发该提示框的元素上时,屏幕阅读器就会读出该提示信息的内容。 aria-describedby 所指向的那个元素并不是提示框本身,而是该提示框内容的一个不可见副本,但它会始终存在于 DOM 中。

避免只显示带有鼠标指针事件(如单击和鼠标输入)的工具提示的交互。始终确保键盘用户可以执行鼠标和触摸用户可用的相同操作集。