Bootstrap JavaScript插件:工具提示(tooltip.js)

简介: Bootstrap 框架

作者:WangMin
格言:努力做好自己喜欢的每一件事

banner.png

Bootstrap 提示工具(Tooltip)插件工具可以通过鼠标移动到选定的特定的元素上时,显示出相关的提示语。当您想要描述一个链接的时候,提示工具(Tooltip)就显得非常有用。提示工具(Tooltip)插件做了很多改进,例如不需要依赖图像,而是改用 CSS 实现动画效果,用 data 属性存储标题信息。
静态样式:

1.png

用法

提示工具(Tooltip)插件根据需求生成内容和标记,默认情况下是把提示工具(tooltip)放在它们的触发元素后面。有以下两种方式添加提示工具(tooltip):

  • 通过 data 属性:如需添加一个提示工具(tooltip),只需向一个锚标签添加data-toggle="tooltip"即可。锚的 title 即为提示工具(tooltip)的文本。默认情况下,插件把提示工具(tooltip)设置在顶部。
<a href="#" data-toggle="tooltip" title="This is the tooltip">Tooltip Example</a>
<a href="#" data-toggle="tooltip" data-original-title="This is the tooltip">Tooltip Example</a>
  • 通过 JavaScript:通过 JavaScript 触发提示工具(tooltip):
    $('#identifier').tooltip(options)
    

    由于性能的原因,不能通过 data 属性直接激活工具提示插件,需要通过Javascript代码手动初始化它。只有初始化之后,将鼠标移动到链接上,才会显示相关的提示信息。否则,是不会显示任何提示信息的。

$(function () { $("[data-toggle='tooltip']").tooltip(); });

案例如下:

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

2.png

  1. 不要尝试显示隐藏元素的工具提示。当目标元素为display:none;时调用$(…).tooltip('show')将导致工具提示的位置不正确。
  2. 禁用元素的工具提示需要包装元素。要向disabled或.disabled元素添加工具提示,请将该元素放在<div>内,并将工具提示应用于该<div>

工具提示插件的选项

Bootstrap为工具提示插件提供了 10 个选项,所有的选项都可以通过 data 属性或JavaScript进行设置。

名称 类型 默认值 说明
animation boolean true 为工具提示应用CSS淡入淡出过渡效果
container string false false 将提示条附加到特定元素,如 container: 'body'
delay number object 0 延迟显示和隐藏提示条的时间(毫秒)——手动触发提示条时无效如果只指定一个数值,则隐藏和显示都使用该数值。对象的结构为 delay: { show: 500, hide: 100 }
html boolean false 提示条支持插入 HTML。如果取值为 false,则使用 jQuery 的 text 方法插入文本。如果担心XSS攻击,那就使用文本
placement string function 'top' 设置提示条的位置,取值:top \ bottom \ left \ right
selector string false 如果提供了选择器,在触发该选择器时才显示提示信息
template string [1] 使用HTML面板创建工具提示。工具提示的title将被注入到.tooltip-inner中。.tooltip-arrow成为工具提示的箭头。最外层的包装元素应该拥有.tooltip类
title string function '' 如果title属性不存在,则使用默认值 ''
trigger string 'hover focus' 工具提示的触发方式:click 、hover 、 focus 、manual。可以传入多个触发方式,以空格分隔。manual不能与其他触发方式组合使用
viewport string object function{ selector: 'body', padding: 0 }使工具提示始终在元素的边界之内。
表中 [1] 表示:
'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'

使用选项时,JavaScript使用以下语法格式来触发工具提示:
$('#example').tooltip(options)

其中,'#example' 为需要显示工具提示的页面元素,options 为使用对象表示的的选项。如,以下代码将以HTML文本格式显示一幅图像作为工具提示的内容,并延迟一秒显示、延迟半秒隐藏:

    <a href="##">小鸟</a>
$('a').tooltip({
   
   
    html:true,
    title:'<p>一只小鸟</p> <img src="../img/timg.jpg" width="170px" height="170px"/>',
    placement:'bottom',
    delay:{
   
   show:500,hide:100}
})

运行效果如下:

3.png


工具提示插件的方法

1、.tooltip(options)
使用一个可选的对象参数 options调用某个页面元素的工具提示。如:

$('某个元素').tooltip({
   
   
    html:true,
    title:'<p>一只小鸟</p> <img src="../img/timg.jpg" width="170px" height="170px"/>',
    placement:'bottom',
    delay:{
   
   show:500,hide:100}
})

2、.tooltip('show')
手动触发某个页面元素的工具提示,并在工具提示被实际显示出来之前(即shown.bs.tooltip事件被触发之前)返回主调函数。如:

$('#element').tooltip('show')

3、.tooltip('hide')
手动隐藏某个页面元素的工具提示,并在工具提示被实际显示出来之前(即hidden.bs.tooltip事件被触发之前)返回主调函数。如:

$('#element').tooltip('hide')

4、.tooltip('toggle')
手动打开或隐藏某个页面元素的工具提示,并在工具提示被实际显示出来之前(即shown.bs.tooltip或hidden.bs.tooltip事件被触发之前)返回主调函数。如:

$('#element').tooltip('toggle')

5、.tooltip('destroy')
手动隐藏并销毁某个页面元素的工具提示。如:

$('#element').tooltip('destroy')

工具提示插件的事件

Bootstrap为工具提示插件提供了 5 个事件,通过监听这些事件,可以对特定操作阶段的用户行为作出响应。

事件 含义
show.bs.tooltip show方法调用之后,立即触发该事件。
shown.bs.tooltip 当工具提示已经对用户可见(并且过渡效果执行完毕)之后,触发该事件
hide.bs.tooltip hide方法调用之后,立即触发该事件
hidden.bs.tooltip 当工具提示已经被隐藏(并且过渡效果执行完毕)之后,触发该事件
inserted.bs.tooltip 当向DOM插入工具提示模板时,在模板插入完成并且show.bs.tooltip触发事件之后,触发该事件。
 $('#myTooltip').on('hidden.bs.tooltip', function () {
   
   
     alert("工具提示已经隐藏。");
 });

就先分享到这里!! :smile: 后续继续更新!!

目录
相关文章
|
2天前
|
JavaScript 前端开发 网络安全
【网络安全 | 信息收集】JS文件信息收集工具LinkFinder安装使用教程
【网络安全 | 信息收集】JS文件信息收集工具LinkFinder安装使用教程
13 4
|
2天前
|
JavaScript 前端开发 UED
在 JavaScript 中,异步编程和回调函数是处理非阻塞操作(如网络请求、文件读写等)的重要工具
【5月更文挑战第10天】JavaScript中的异步编程和回调函数用于处理非阻塞操作,提高应用响应性和吞吐量。异步编程通过回调函数、Promises和async/await等方式实现,避免程序因等待操作完成而阻塞。回调函数是异步操作完成后调用的函数,常用于处理网络请求等。然而,回调函数存在嵌套问题和错误处理困难,因此出现了Promises和async/await等更优解决方案。
13 3
|
2天前
|
数据可视化 JavaScript 前端开发
【专栏】D3.js 和 Tableau 是两种流行的数据可视化工具
【4月更文挑战第27天】D3.js 和 Tableau 是两种流行的数据可视化工具。D3.js,一个JavaScript库,以其灵活性和定制性著称,适合创建复杂、个性化的可视化效果,但需要编程技能。Tableau,一款用户友好的分析软件,提供直观界面和强大分析功能,适合快速生成常见图表。在选择时,应考虑项目需求、团队技术能力、数据规模和性能要求。两者可单独使用,也可结合发挥各自优点。随着数据可视化需求的增长,这些工具将持续发展并提供更好的解决方案。
|
1天前
|
JavaScript 前端开发 Go
动态加载与异步加载 JavaScript 详解:加载远程js,加载成功后执行回调函数
动态加载与异步加载 JavaScript 详解:加载远程js,加载成功后执行回调函数
|
2天前
|
移动开发 JavaScript 前端开发
Phaser和Three.js是两个非常流行的JavaScript游戏框架
【5月更文挑战第14天】Phaser是开源的2D游戏引擎,适合HTML5游戏开发,内置物理引擎和强大的图形渲染功能,适用于消消乐等2D游戏。Three.js是基于WebGL的3D库,用于创建3D场景和应用,支持各种3D对象和交互功能,广泛应用于游戏、可视化等领域。选择框架取决于项目需求,2D选Phaser,3D选Three.js。
15 4
|
2天前
|
前端开发 JavaScript 开发者
在JavaScript中,回调函数是一种非常强大的工具
【5月更文挑战第10天】JavaScript中的回调函数是异步编程的核心,常用于处理异步操作结果、事件监听、定时任务、数组遍历和转换以及递归调用。例如,`fetchData`函数使用回调处理网络请求的结果,`addEventListener`用于监听事件,`setTimeout`执行延迟任务,`map`则对数组元素进行操作。尽管回调函数可能导致回调地狱和错误处理复杂,但它们依然是理解和掌握JavaScript的关键技能,而Promise和async/await提供了更优的异步解决方案。
11 2
|
2天前
|
JavaScript
js的插件
js的插件
14 1
|
2天前
|
JSON JavaScript 前端开发
使用JavaScript和XLSX.js将数据导出为Excel文件
使用JavaScript和XLSX.js将数据导出为Excel文件
27 0
|
2天前
|
JavaScript 前端开发 开发工具
【JavaScript 技术专栏】Node.js 基础与实战
【4月更文挑战第30天】本文介绍了Node.js的基础及应用,包括事件驱动的非阻塞I/O、单线程模型和模块系统。内容涵盖Node.js的安装配置、核心模块(如http、fs、path)及实战应用,如Web服务器、文件操作和实时通信。文章还讨论了Node.js的优劣势、与其他技术的结合,并通过案例分析展示项目实施流程。总结来说,Node.js是高效后端开发工具,适合构建高并发应用,其广阔的应用前景值得开发者探索。
|
2天前
|
JavaScript 前端开发 开发者
Node.js的包管理和npm工具深度解析
【4月更文挑战第30天】本文深入解析Node.js的包管理和npm工具。包管理促进代码复用和社区协作,包包含元数据描述文件`package.json`和入口文件。npm提供搜索、安装、发布等功能,通过命令行进行操作,如`install`、`search`、`uninstall`。npm支持版本控制、全局安装、脚本定义及私有仓库。理解和熟练运用npm能提升Node.js开发效率。

热门文章

最新文章