一个专为引导用户而设计的轻量级前端库,让你的产品更懂用户,Star 22.7K+!
在软件产品设计中,UX交互设计是最核心之一。UX设计是否简单易用,是吸引初次用户是否最重要的体验,UX交互工程建设越好,用户体验越好,系统更懂用户,产品成功的可能性就越大。
但是UX交互设计并不是一个简单的事情,不仅仅涉及到代码编程,还涉及到如何美观简洁、用户属性匹配等等。UX交互设计的难点在于它是一个多维度、跨学科的领域,需要设计师具备广泛的技能和敏感度。
目前最常用的方案,就是在系统中嵌入交互式的引导教程,能够很大程度上提升用户体验,提高产品的易用性,并且能够及时的展示系统新功能,从而提高转化率。总之,在系统中嵌入用户引导教程可以为产品带来很多的好处。
所以,今天给大家介绍的就是一个专为用户引导教程而设计的开源轻量级前端库-intro.js
intro.js 介绍
一个开源的轻量级JavaScript库,专为创建用户友好的、逐步的产品引导和客户引导教程而设计。它以其简洁的API、高度的可定制性、无外部依赖性以及易于集成到任何网站或应用中而受到全球5000多个团队的信任。

🏠 项目信息
#Github地址
https://github.com/usablica/intro.js
#项目地址
https://introjs.com/
🚀功能特性
- 多步骤引导:能够创建包含多个步骤的引导教程,逐步向用户介绍产品特性。
- 元素高亮:在引导过程中,可以高亮显示特定的页面元素,以便用户集中注意力。
- 自定义介绍:为每个步骤提供自定义的介绍文本或内容,增强用户体验。
- 键盘和鼠标导航:用户可以使用键盘或鼠标来控制引导教程的前进和后退。
- 多种布局支持:支持多种页面布局和元素定位,包括响应式设计。
- 多语言支持:可以为不同语言的用户创建本地化的引导教程。
- CSS样式定制:允许开发者通过CSS来定制引导教程的外观和风格。
- 事件回调:提供多种事件回调函数,如onbeforechange、onchange和oncomplete,用于在特定事件发生时执行自定义代码。
- 动态内容支持:可以动态地添加、修改或删除引导步骤。
- 进度指示:显示当前步骤和总步骤数,让用户知道他们在引导过程中的位置。
- 跳过和结束:用户可以选择跳过当前步骤或完全结束引导教程。
- 滚动控制:自动滚动页面以确保当前步骤的元素可见。
- 响应用户操作:引导教程可以响应用户的点击和键盘操作。
- 集成测试:可以轻松集成到自动化测试流程中。
- 无外部依赖:Intro.js 是一个独立的库,没有外部依赖,易于集成。
- 插件和扩展:支持创建和使用插件来扩展功能
🛠 demo演示

intro.js 安装
- 通过NPM安装:
npm install intro.js --save- 通过Yarn:安装
yarn add intro.js- 通过CDN引入:也可以直接通过CDN链接在HTML文件中引入Intro.js的CSS和JavaScript文件:
<!-- 引入Intro.js的CSS文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/intro.js/minified/introjs.min.css" />
<!-- 引入Intro.js的JavaScript文件 -->
<script src="https://cdn.jsdelivr.net/npm/intro.js/minified/introjs.min.js"></script>intro.js 使用
- 引入库
需要在HTML文件中引入 intro.js 和相应的CSS文件。
<link rel="stylesheet" href="introjs.css"><script src="intro.js">script>
- 初始化
在JavaScript代码中,创建一个新的 introJs 实例,并配置。
var intro = introJs();- 配置步骤
定义引导步骤,每个步骤可以指定一个元素、介绍内容和位置。
intro.setOptions({
steps: [
{
element: '#step1',
intro: '这是第一步',
position: 'right'
},
{
element: '#step2',
intro: '这是第二步',
position: 'left'
},
// 更多步骤...
]
});- 启动引导
调用 start() 方法来启动引导。
intro.start();- 事件监听
可以监听引导过程中的事件,比如 onbeforechange(在步骤变化之前)或 onchange(在步骤变化时)
intro.onbeforechange(function (element) {
// 步骤变化之前的逻辑
});
intro.onchange(function (element) {
// 步骤变化时的逻辑
});- 样式定制
Intro.js提供了多种配置选项,如步骤位置、提示按钮的标签、键盘导航、动画效果等,可以根据需要进行自定义。
#动画效果
introJs().setOptions({
animation: 'fade'
}).start();
#支持以下动画效果
淡入淡出(Fade in/out):引导元素逐渐显现或消失的效果。
弹出(Pop):引导元素突然出现,通常伴随着放大的动画。
滑动(Slide):引导元素从屏幕的一边滑入视图。
缩放(Scale):引导元素从小到大或从大到小变化。
旋转(Spin):引导元素围绕中心点旋转。
弹跳(Bounce):引导元素以弹跳的方式进入视图。
闪烁(Flash):引导元素快速地显示和隐藏,以吸引注意力。
晃动(Shake):引导元素左右晃动。
滑动下(Slide down):引导元素从上方滑入到下方。
滑动上(Slide up):引导元素从下方滑入到上方。
从左到右(From left):引导元素从屏幕左侧滑入。
从右到左(From right):引导元素从屏幕右侧滑入。
从上到下(From top):引导元素从屏幕顶部滑入。
从下到上(From bottom):引导元素从屏幕底部滑入。- API方法
intro.js 提供了一些API方法,比如 goToStep()(跳转到特定步骤),exit()(退出引导),等等。
// 跳转到第3步
intro.goToStep(2);
// 退出引导
intro.exit();- 视频支持
intro.js 没有直接支持视频的特定功能,但可以指向包含视频的HTML元素(如标签或视频嵌入)。
var intro = introJs();
intro.setOptions({
steps: [
{
element: '#videoElement', // 指向包含视频的元素
intro: '这是我们的Demo视频。',
position: 'right'
},
// 其他步骤...
]
});
intro.start();最后
综上所述,Intro.js是一个强大的前端库,可以帮助企业设计在系统更加吸引人、易于使用且高度可定制的用户引导教程,从而显著提升用户体验!如有你正好也有这块的需求化,不妨试试吧!