Bootstrap工具提示

2023-11-24 53

Bootstrap工具提示(Tooltips)是一种常用的交互性组件,用于提供对元素的简短解释或补充信息。它以浮动的气泡形式展示,当用户将鼠标悬停在一个元素上时,或通过触摸屏点击元素时,工具提示会显示出来。Bootstrap工具提示可以通过CSS和JavaScript来实现。

一、概述

使用工具提示插件时应注意的事项:

  • 工具提示依赖于第三方库Popper进行定位。必须在bootstrap.js之前包含popper.min.js,或者使用bootstrap.bundle.min.js/bootstrap.bundle.js,其中包含popper,这样工具提示才能工作;
  • 由于性能原因,工具提示是可选的,因此必须自己初始化它们;
  • 标题长度为零的工具提示永远不会显示;
  • 指定container:’body’以避免在更复杂的组件(如输入组、按钮组等)中呈现问题;
  • 在隐藏元素上触发工具提示将不起作用;
  • .disabled或disabled元素的工具提示必须在包装器元素上触发;
  • 当从跨多行的超链接触发时,工具提示将居中显示。使用空白:nowrap;以避免这种行为;
  • 在从DOM中删除相应的元素之前,必须隐藏工具提示;
  • 由于阴影DOM中的元素,可以触发工具提示。

注意:

  • 默认情况下,此组件使用内置的内容清理器,该清理器将删除任何不明确允许的HTML元素;
  • 该组件的动画效果取决于偏好减少的运动媒体查询。请参阅我们的可访问性文档的简化运动部分。

二、在各处用工具提示

初始化页面上所有工具提示的一种方法是通过数据属性选择它们:

var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl)
})

三、基本示例

将鼠标悬停在以下链接上可查看工具提示:

Bootstrap工具提示

将鼠标悬停在下面的按钮上可以看到四个工具提示方向:顶部、右侧、底部和左侧。在RTL中使用 Bootstrap时,方向是镜像的。

Bootstrap工具提示

<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">
Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="right" title="Tooltip on right">
Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Tooltip on bottom">
Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" title="Tooltip on left">
Tooltip on left
</button>

添加自定义HTML:

<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
Tooltip with HTML
</button>

使用SVG:

Bootstrap工具提示

四、用法

工具提示插件按需生成内容和标记,默认情况下,将工具提示放在触发器元素之后。

通过JavaScript触发工具提示:

var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)

溢出自动和滚动:当父容器发生溢出时,工具提示位置尝试自动更改:自动或溢出:像.table一样滚动,但仍保持原始位置的位置。若要解析,请将边界选项设置为除默认值“scrollParent”以外的任何值,例如“window”:

var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, {
boundary: 'window'
})

1、标记

工具提示所需的标记只是希望具有工具提示的HTML元素的数据属性和标题。工具提示的生成标记相当简单,尽管它确实需要一个位置(默认情况下,由插件设置为top)。

<!-- HTML to write -->
<a href="#" rel="external nofollow"  data-bs-toggle="tooltip" title="Some tooltip text!">Hover over me</a>
<!-- Generated markup by the plugin -->
<div class="tooltip bs-tooltip-top" role="tooltip">
<div class="tooltip-arrow"></div>
<div class="tooltip-inner">
Some tooltip text!
</div>
</div>

2、禁用的元素

具有disabled属性的元素不是交互式的,这意味着用户不能聚焦、悬停或单击它们来触发工具提示(或popover)。作为一种解决方法,需要从包装器div或span触发工具提示,最好使用tabindex=“0”使键盘可聚焦。

Bootstrap工具提示

<span class="d-inline-block" tabindex="0" data-bs-toggle="tooltip" title="Disabled tooltip">
<button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span>

3、选项

选项可以通过数据属性或JavaScript传递。对于数据属性,将选项名称附加到data-bs-,如data-bs-animation=””中所示。在传递数据属性时,请确保将选项名称的case类型从camelCase更改为kebab case。例如:不要使用数据data-bs-customClass=”beautifier”,而是使用数据 data-bs-custom-class=”beautifier”。

注意:出于安全原因,不能使用数据属性提供sanitize、sanitizeFn和allowList选项。

Name Type Default Description
animation boolean TRUE 对工具提示应用CSS淡入淡出过渡
container string | element | false FALSE 将工具提示附加到特定元素。示例:container:’body’。此选项特别有用,因为它允许您将工具提示放置在触发元素附近的文档流中—这将防止工具提示在调整窗口大小期间从触发元素中浮动。
delay number | object 0 延迟显示和隐藏工具提示(ms)-不适用于手动触发器类型

如果提供了数字,则对隐藏/显示都应用延迟

对象结构是:delay:{“show”:500,“hide”:100}

html boolean FALSE 允许在工具提示中使用HTML。

如果为true,则工具提示标题中的HTML标记将呈现在工具提示中。如果为false,innerText属性将用于将内容插入DOM。

如果您担心XSS攻击,请使用文本。

placement string | function ‘top’ 如何定位工具提示-自动|顶部|底部|左侧|右侧。当指定auto时,它将动态地重定向工具提示。

函数用于确定位置时,调用它时,工具提示DOM节点作为第一个参数,触发元素DOM节点作为第二个参数。此上下文设置为工具提示实例。

selector string | false FALSE 如果提供了选择器,则工具提示对象将委派给指定的目标。实际上,它还用于将工具提示应用于动态添加的DOM元素(jQuery.on support)。
template string ‘<div class=”tooltip” role=”tooltip”><div class=”tooltip-arrow”></div><div class=”tooltip-inner”></div></div>’ 创建工具提示时要使用的基本HTML。

工具提示的标题将被注入.tooltip内部。

工具提示箭头将成为工具提示的箭头。

最外层的包装器元素应该具有.tooltip类和role=“tooltip”。

title string | element | function 如果标题属性不存在,则为默认标题值。

如果给定了一个函数,将调用该函数,并将其this引用设置为工具提示所附加到的元素。

trigger string ‘hover focus’ 如何触发工具提示-单击“悬停”“聚焦”“手动”。您可以传递多个触发器;用空格隔开。

“manual”表示工具提示将通过.tooltip(’show’)、.tooltip(’hide’)和.tooltip(’toggle’)方法以编程方式触发;此值不能与任何其他触发器组合。

“悬停”本身将导致无法通过键盘触发的工具提示,并且仅当存在用于向键盘用户传递相同信息的替代方法时才应使用。

fallbackPlacements array [‘top’, ‘right’, ‘bottom’, ‘left’] 通过提供数组中的放置列表(按优先顺序)来定义后备放置。
boundary string | element ‘clippingParents’ 工具提示的溢出约束边界。默认情况下,它是’clippingParents’,可以接受HTMLElement引用(仅限于JavaScript)。
customClass string | function 在显示工具提示时向其添加类。请注意,这些类将添加到模板中指定的任何类之外。要添加多个类,请用空格分隔它们:“class-1 class-2”。

还可以传递一个函数,该函数应返回一个包含其他类名的字符串。

sanitize boolean TRUE 启用或禁用消毒。如果激活,“模板”和“标题”选项将被清除。请参阅我们的JavaScript文档中的消毒剂部分。
allowList object Default value 包含允许的属性和标记的对象
sanitizeFn null | function null 在这里您可以提供自己的消毒功能。如果您喜欢使用专用的库来执行清理,这将非常有用。
offset array | string | function [0, 0] 工具提示相对于其目标的偏移量。您可以用逗号分隔的值在数据属性中传递字符串,例如:data bs offset=“10,20”

当一个函数用于确定偏移量时,调用它的第一个参数是包含popper放置、引用和popper rects的对象。触发元素DOM node作为第二个参数传递。函数必须返回一个包含两个数字的数组:[滑动,距离]。

popperConfig null | object | function null 当一个函数被用来创建Popper配置时,它被一个包含引导的默认Popper配置的对象调用。它可以帮助您使用默认配置并将其与您自己的配置合并。函数必须返回Popper的配置对象。

也可以通过使用数据属性来指定单个工具提示的选项,如上所述。

4、popperConfig和函数一起使用

var tooltip = new bootstrap.Tooltip(element, {
popperConfig: function (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})

五、方法

异步方法和转换:所有API方法都是异步的,并开始转换。转换一开始就返回到调用方,但在转换结束之前返回。此外,对转换组件的方法调用将被忽略。

1、显示

显示元素的工具提示。在工具提示实际显示之前(即,在show.bs.tooltip事件发生之前)返回调用方。这被认为是工具提示的“手动”触发。标题长度为零的工具提示永远不会显示。

tooltip.show()

2、隐藏

隐藏元素的工具提示。在工具提示实际隐藏之前(即在hidden.bs.tooltip事件发生之前)返回调用方。这被认为是工具提示的“手动”触发。

tooltip.hide()

3、切换

切换元素的工具提示。在工具提示实际显示或隐藏之前(即,在Showed.bs.tooltip或hidden.bs.tooltip事件发生之前)返回调用方。这被认为是工具提示的“手动”触发。

tooltip.toggle()

4、注销

隐藏和销毁元素的工具提示(删除DOM元素上存储的数据)。使用委派(使用选择器选项创建)的工具提示不能在子触发器元素上单独销毁。

tooltip.dispose()

5、启用

使元素的工具提示能够显示。默认情况下启用工具提示。

tooltip.enable()

6、禁用

取消显示元素工具提示的功能。工具提示只有在重新启用时才能显示。

tooltip.disable()

7、启用切换

切换显示或隐藏元素工具提示的功能。

tooltip.toggleEnabled()

8、更新

更新元素工具提示的位置。

tooltip.update()

9、获取实例

静态方法,该方法允许获取与DOM元素关联的工具提示实例

var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance

六、事件

Event type Description
show.bs.tooltip 当调用show实例方法时,此事件会立即触发。
shown.bs.tooltip 当工具提示显示后,会触发此事件(待CSS转换完成)。
hide.bs.tooltip 当调用hide实例方法时,会立即触发此事件。
hidden.bs.tooltip 当工具提示隐藏后,会触发此事件(待CSS转换完成)。
inserted.bs.tooltip 将工具提示模板加到DOM后,会在show.bs.tooltip事件后触发此事件。
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = new bootstrap.Tooltip(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', function () {
// do something...
})
tooltip.hide()
  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。