当前位置: 首页 > news >正文

每日前端宝藏库 | Tippy.js ✨

🎯 “不是所有提示都叫 Tippy。” —— 现代 Tooltip 的终极形态 🌟


🎯 一句话介绍

Tippy.js 是一个 现代、轻量、可高度定制 的 JavaScript 提示框(Tooltip)库 🚀,基于 Popper.js 构建,支持气泡提示、弹出框、自定义内容、动画、主题、可访问性(a11y),让你的 UI 交互瞬间专业感拉满!🎯💥

🎨 它不是简单的 title 替代品,而是交互语义的优雅表达


🤔 为什么你需要它?

传统方案 ❌Tippy.js ✅
原生 title 属性:样式丑、延迟长、不支持 HTML✅ 支持富文本、图片、按钮,样式现代
自己写 Tooltip:定位难、兼容性差 😩✅ 基于 Popper.js,智能定位,自动避让
缺少动画,生硬出现/消失 🤖✅ 内置多种平滑动画(fade, shift, scale)
忽视可访问性 ♿✅ 自动处理 aria-*、键盘导航、焦点管理
移动端体验差 📱✅ 支持触摸、长按触发
无法嵌套或复杂交互 🧩✅ 支持 Popovers(点击弹出)、多媒体内容

🚀 快速上手:3 步起飞!

Step 1️⃣:安装它!

npm install tippy.js
# 或 yarn
yarn add tippy.js

💡 也支持 CDN 快速引入:

<script src="https://unpkg.com/@popperjs/core@2"></script>
<script src="https://unpkg.com/tippy.js@6"></script>

Step 2️⃣:HTML 结构准备 🏗️

<!-- 基础提示 -->
<button data-tippy-content="这是一个提示!">Hover 我</button><!-- 支持 HTML 内容 -->
<button id="html-tip">带图标的提示</button>

Step 3️⃣:初始化并配置!✨

import tippy from 'tippy.js';
import 'tippy.js/dist/tippy.css'; // 核心样式
import 'tippy.js/dist/border-radius.css'; // 可选主题// 1. 自动初始化 data-tippy-* 属性
tippy('[data-tippy-content]');// 2. 手动创建带 HTML 的提示
tippy('#html-tip', {content: `<div style="display:flex;align-items:center;gap:8px;"><svg>...</svg><span>你好,我是 <strong>富文本</strong> 提示!</span></div>`,allowHTML: true,placement: 'right',           // 提示位置:top, bottom, left, rightanimation: 'scale',           // 动画效果delay: [100, 50],             // [显示延迟, 隐藏延迟]theme: 'light-border',        // 主题interactive: true,            // 是否可交互(如按钮点击)appendTo: document.body       // 避免 overflow: hidden 截断
});

🎉 效果:鼠标悬停,优雅提示弹出,自动避让窗口边缘!🎯


💻 在线测试沙盒 🧪

👉 动手试试这个“会说话的 UI”吧!✨

<button id="tip1" style="margin:20px;">Hover 我</button>
<button id="tip2" style="margin:20px;">点击我(Popover)</button><script src="https://unpkg.com/@popperjs/core@2"></script>
<script src="https://unpkg.com/tippy.js@6"></script>
<script>// 基础提示tippy('#tip1', {content: '🎉 Hello Tippy!',animation: 'fade'});// 点击弹出(Popover)tippy('#tip2', {content: '<p>这是一个可交互的弹出框。</p><button onclick="alert(\'点击了!\')">按钮</button>',allowHTML: true,trigger: 'click',interactive: true,placement: 'bottom',arrow: true,theme: 'light'});
</script>

🔗 在线测试推荐:

  • StackBlitz - Tippy.js 沙盒

🎨 核心特性一览 🌟

特性说明
placement: 'top'智能定位,自动调整避免溢出
animation: 'shift-toward'多种动画:fade, scale, shift, perspective
interactive: true支持内部按钮、表单交互 🔗
allowHTML: true支持 HTML 内容,不限于纯文本
theme: 'light'内置主题:light, dark, material, translucent 等
trigger: 'click'触发方式:hover, focus, click, manual
delay: [200, 100]控制显示/隐藏延迟
可访问性自动 ARIA 支持,键盘导航友好 ✅

🧩 高级玩法 🎮

1️⃣ 创建“帮助中心”式 Popover

tippy('#help-btn', {content: document.getElementById('help-content').innerHTML,allowHTML: true,trigger: 'click',interactive: true,placement: 'bottom-end',theme: 'material',maxWidth: 300
});

✅ 实现点击按钮弹出帮助文档,支持滚动、链接、图片!📚

2️⃣ 动态更新内容

const tip = tippy('#dynamic');// 模拟数据更新
setInterval(() => {const time = new Date().toLocaleTimeString();tip[0].setContent(`当前时间:${time}`);
}, 1000);

3️⃣ 自定义主题(CSS)

.tippy-box[data-theme~='neon'] {background: linear-gradient(45deg, #ff00cc, #3333ff);box-shadow: 0 0 10px #fff, 0 0 20px #ff00cc;color: white;font-weight: bold;
}
tippy('#neon', { theme: 'neon' });

📊 适用场景 🎯

  • ℹ️ 图标旁的说明提示 ❓
  • 📊 数据图表的详细解释 📈
  • 🛠️ 设置项的辅助说明 ⚙️
  • 📱 移动端长按触发帮助 📲
  • 🎮 游戏/应用内的新手引导 🧭

🏁 总结:Tippy.js 是你的“UI 讲解员” 🎤💖

评分内容
🚀 易用性⭐⭐⭐⭐⭐
🎨 视觉表现力⭐⭐⭐⭐⭐
🧩 可扩展性⭐⭐⭐⭐☆
♿ 可访问性⭐⭐⭐⭐⭐
💡 推荐指数🔥🔥🔥🔥🔥

一句话推荐:
如果你想让 UI 更“懂”用户,Tippy.js 就是那个在恰当时间、恰当位置,说恰当话的智能助手。
小组件,大体验。💬✨


http://www.dtcms.com/a/420686.html

相关文章:

  • MariaDB 数据库管理指南
  • 桂林企业网站建设珠海网站制作推广公司哪家好
  • Windows 命令提示符键盘快捷键
  • 爱站seo排名可以做哪些网站网页设计师的认识
  • UI自动化框架之Selenium简介(一)
  • 做家装壁纸的网站企业名称注册查询官网入口
  • 站长做什么网站赚钱网络优化网站 site
  • 个人网站建设架构手机网站建设的行情
  • 网站建设运营费用预算承德网站建设咨询
  • 建网站要使用哪些软件南京宜电的网站谁做的
  • 手机网站app生成360建筑网会员
  • dw 做网站的思路网站优化 网站建设公司
  • 网站记录ip 修改济宁市建设工程质量监督站网站
  • 建筑图纸网站黑帽seo优化软件
  • 地产公司做网站维护写代码么6wordpress数据库分离
  • 想做cpa 没有网站怎么做应用市场商店
  • QML之二导航,通过选项卡的按键切换界面
  • JavaWeb 课堂笔记 —— 24 AOP 面向切面编程
  • MYSQL —— 约束和多表查询
  • LAYER_INITCALL宏
  • M| 怪形
  • 在Linux中快速下载Conda的方法
  • 如何做自己的简历网站wordpress文库主题
  • 数据库-锁
  • 解决 Python Crypto安装后依然无效的问题
  • 数字化转型:概念性名词浅谈(第五十六讲)
  • solidworks 实体分割 保存实体 后转换钣金 钣门框出图 结构构件添加 钣金出图教程 平板样式不是展开解决办法 比例激活1比1
  • (Kotlin协程六)协程和RxJava的区别
  • 企业网站制作及cms技术网站开发文档教学
  • 比较好的建立站点如何修改wordpress主题