Hopscotch框架使用指南:构建交互式产品导览
2025-07-09 00:44:30作者:宣聪麟
什么是Hopscotch?
Hopscotch是一个轻量级的JavaScript框架,专门用于为网页添加产品导览功能。它通过接收JSON格式的导览配置对象,提供了一套完整的API来控制导览的显示和流程管理。这个框架非常适合需要引导用户熟悉产品功能或界面的Web应用。
核心特性
Hopscotch具有以下突出特点:
- 事件回调机制:提供onStart、onEnd、onShow、onNext、onPrev、onClose、onError等多种事件回调
- 多页面导览支持:支持跨页面的导览流程,使用HTML5 sessionStorage保存状态,兼容性回退到cookie
- 国际化支持:可自定义导览控件的语言文本
- 轻量级提示框:支持创建单实例的提示框
快速入门
基础集成
要开始使用Hopscotch,只需在页面中引入两个文件:
<link rel="stylesheet" href="css/hopscotch.css">
<script src="js/hopscotch.js"></script>
创建第一个导览
定义一个简单的导览JSON对象:
var tour = {
id: "hello-hopscotch",
steps: [
{
title: "页面标题",
content: "这是页面的主要标题区域",
target: "header",
placement: "right"
},
{
title: "内容区域",
content: "这里显示页面的主要内容",
target: document.querySelector("#content p"),
placement: "bottom"
}
]
};
然后启动导览:
hopscotch.startTour(tour);
导览配置详解
基本步骤选项
每个导览步骤最基本的配置包括:
target
:目标DOM元素(ID、CSS选择器或DOM对象)placement
:提示框位置(top/bottom/right/left)title
:步骤标题(可选)content
:步骤内容(可选)
示例:
{
id: "welcome_tour",
steps: [
{
target: "header",
placement: "bottom",
title: "导航菜单",
content: "使用这里的链接浏览网站内容!"
}
]
}
完整步骤选项
Hopscotch提供了丰富的步骤配置选项:
布局控制:
width
:提示框宽度padding
:内边距xOffset/yOffset
:位置微调arrowOffset
:箭头偏移量zindex
:z-index值
行为控制:
delay
:显示延迟(毫秒)showNextButton/showPrevButton
:显示导航按钮showCTAButton
:显示行动号召按钮multipage
:是否跨页面fixedElement
:目标元素是否固定定位nextOnTargetClick
:点击目标元素是否前进
回调函数:
onPrev/onNext
:前后导航回调onShow
:显示时回调onCTA
:行动号召按钮回调
导览全局选项
通过hopscotch.configure()
可以设置全局选项:
hopscotch.configure({
bubbleWidth: 300, // 默认提示框宽度
smoothScroll: true, // 启用平滑滚动
scrollDuration: 1000, // 滚动动画时长
showCloseButton: true, // 显示关闭按钮
i18n: { // 国际化文本
nextBtn: "下一步",
prevBtn: "上一步"
}
});
API参考
Hopscotch提供了一套完整的API来控制导览:
startTour(tour, stepNum)
:启动导览showStep(idx)
:跳转到指定步骤prevStep()/nextStep()
:前后导航endTour([clearCookie])
:结束导览getCurrTour()/getCurrStepNum()
:获取当前状态listen(eventName, callback)
:事件监听registerHelper(id, fn)
:注册辅助函数
回调函数设计
Hopscotch支持多种方式定义回调:
函数字面量
var tour = {
id: 'myTour',
steps: [{
target: 'firststep',
onNext: function() {
$('#firststep').hide();
}
}],
onStart: function() {
$('#article').addClass('selected');
}
};
回调助手
对于JSON配置的场景,可以预注册助手函数:
hopscotch.registerHelper('hideElement', function(id) {
document.getElementById(id).style.display = 'none';
});
// 然后在JSON中引用
{
"onNext": "hideElement('firststep')"
}
最佳实践
- 安全性:避免直接使用用户生成内容作为导览文本,防止XSS攻击
- 性能:对于复杂页面,考虑使用
delay
选项确保元素加载完成 - 用户体验:
- 保持导览步骤简洁
- 合理使用多页面导览
- 提供跳过选项
- 无障碍:确保提示框内容对屏幕阅读器友好
Hopscotch框架通过其简洁的API和灵活的配置选项,为开发者提供了创建专业级产品导览的强大工具。无论是简单的功能引导还是复杂的多页面导览,都能轻松应对。