提示冒泡(Tooltip)
使用提示冒泡持件时应了解以下:
- Tooltip提示冒泡组件依赖于 Popper.js ,你必须将 文件放在 bootstrap.js之前调用,或者使用
bootstrap.bundle.min.js
/bootstrap.bundle.js
这两个已经包含了 Popper.js 的脚本。 - 如果自行编译JS,请 包含
util.js
文件。 - 出于性能安排,Tooltip提示冒泡是一个可选插件,所以 你必须自己初始化它们。
- 标题(或内容)零长度情况下,Tooltip提示冒泡插件不会显示(生效)。
- 指定
container: 'body'
以避免复杂组年(如输入框组、按钮组等)中渲染呈出混乱(出问题)。 - 在隐藏元素上触发Tooltip提示冒泡插件不会起作用(无效行为)。
- Tooltip提示冒泡插件的
.disabled
或disabled
元素必须放在外层(父层)元素上。 - 如果从一个跨多行的链接上触发Tooltip提示冒泡插件,提示冒泡将居中,在你的
<a>
上使用white-space: nowrap;
可避免这种行为(即回归左右对齐)。 - 必须先隐藏Tooltip提示冒泡插件,然后才能从DOM中删除相应的元素。
此组件的动画效果取决于prefers-reduced-motion
媒体查询. 请参阅我们的 .
都明白了?很好。让我们来通过一些例子来看它们具体是如何运作的。
在网页上初始化所有的tooltip提示冒泡插件一个途径就是用data-toggle
来选择它们:
请用鼠标点击下面一段文字上的链接,查看tooltip提示冒泡效果:
将鼠标悬停在下面的按钮上,可以看到四个工具提示方向:顶部、右侧、底部和左侧。
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right">
Tooltip on right
</button>
Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip on left">
Tooltip on left
</button>
并且支持自定义HTML:
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
</button>
tooltip提示冒泡插件根据需要生成内容和标记,默认情况下我们将它放在触发元素之后。
使用JavaScript触发提示冒泡:
$('#example').tooltip(options)
溢出自动
和滚动
当父容器溢出时,工具提示位置会尝试自动更改:自动
或 溢出,
像我们的.table-responsive
一样滚动,但仍保留原始位置的定位. 要解决此问题, 请将boundary
选项设置为默认值, 'scrollParent'
,例如'window'
:
$('#example').tooltip({ boundary: 'window' })
工具提示框所需要的标记只是一个data
元素和你希望拥有一个tooltip提示冒泡HTML元素上的 title
,tooltip提示冒泡插件的标记很简单,尽管它需要一个位置(默认是 top
顶部指示)。
使tooltip提示冒泡使用于键盘和辅助技术使用者
推荐你只为传统的键盘和互动式(如链接或表单控制元件)的HTML元素添加tooltip提示冒泡框,虽然任意的HTML 元素 (如 <span>
)可以通过添加 tabindex="0"
属性来调整focus行为,但这会为键盘使用者的非互动式元素增加可能困惑(混乱/错误)的定位点。此外大多数辅助技术目前还没有加入这种情况下的提示冒泡效果支持。
<span class="d-inline-block" tabindex="0" data-toggle="tooltip" title="Disabled tooltip">
<button class="btn btn-primary" style="pointer-events: none;" type="button" disabled>Disabled button</button>
</span>
你可以通过数据属性或JavaScript传递选项,如果使用数据属性,请将选项名称附加到data-
,如 data-animation=""
.
请注意,出于安全原因,无法使用数据属性提供sanitize
, sanitizeFn
和whiteList
选项.
单个提示冒泡的数据属性
单个提示冒泡的选项可以通过使用data数据属性来替补指定,如前文所述。
异步传输和转换
所有的API方法都是异步的,并开始一个转换。一旦转换开始但在结束之前,它们就返回给调用者。另外,一个转换组件的方法调用将被忽略。
$().tooltip(options)
将一个元素附加一个提示冒泡处理程序。
.tooltip('show')
显示一个元素的提示冒泡, 在提示冒泡真正显示之前返回给调用者 (即shown.bs.tooltip
事件发生前)。这将被识别为一个“人为”的手动触发提示冒泡,零长度的提示框不会显示。
$('#element').tooltip('show')
.tooltip('hide')
隐藏元素的冒泡提示,在提示冒泡框实际被隐藏之前返回给调用者 (即 hidden.bs.tooltip
事件发生前)。这将被识别为一个“人为”的手动触发提示冒泡。
$('#element').tooltip('hide')
.tooltip('toggle')
切换元素的工具提示冒泡,在提示冒泡真正显示或隐藏之前返回给调用者 (即 shown.bs.tooltip
或 hidden.bs.tooltip
事件发生前)。这将被识别为一个“人为”的手动触发提示冒泡。
$('#element').tooltip('toggle')
.tooltip('dispose')
隐藏或破坏元素的提示冒泡,使用委派(创建时 )的提示冒泡不能在后代触发元素上单独销毁。
.tooltip('enable')
给一个元素的提示冒泡显示的功能, 默认情况下启用Tooltip提示冒泡。
$('#element').tooltip('enable')
.tooltip('disable')
删除元素的提示冒泡的显示功能,只有在重新启用后,才能显示提示冒泡。
$('#element').tooltip('disable')
.tooltip('toggleEnabled')
切换元素的提示冒泡显示或隐藏的能力。
.tooltip('update')
$('#element').tooltip('update')
Event事件类型 | 描述 |
---|---|
show.bs.tooltip | 当调用show 实例方法时,会立即触发该事件。 |
shown.bs.tooltip | 当提示冒泡对用户来说可见时(需要等待CSS过渡完成),会触发该事件。 |
hide.bs.tooltip | 当调用hide 实例方法时,会立即触发该事件。 |
hidden.bs.tooltip | 当提示冒泡对用户来说终于完成隐藏时(需要等待CSS过渡完成),会触发该事件。 |
inserted.bs.tooltip | 将提示冒泡框加到DOM后,会在 事件后触发此事件。 |