先上图
项目地址
功能说明
添加一个引导层对用户进行操作引导
使用
new Guide([
{
selector: '#t1',
src: 'img/pic-1.png',
delay: 500,
before: function (done) {
done()
},
handler: function (el, img, option) {
return {
x: -img.width + el.offsetWidth + (img.height - el.offsetWidth) / 2,
y: -(img.height - el.offsetHeight) / 2
}
}
},
{
selector: '#t2',
src: 'img/pic-1.png',
handler: function (el, img, option) {
return {
x: -img.width + el.offsetWidth + (img.height - el.offsetWidth) / 2,
y: -(img.height - el.offsetHeight) / 2
}
}
}
], 9999)
参数说明
/*
* @params steps: 步奏
* @params zIndex: 图层的层次(可选,默认 99999)
*
Guide(Array<Step>: steps, Number?: zIndex)
interface Step {
// 目标选择器(必填)
String: selector
// 引导图片(必填)
String: src
// 延时时间(可选)
Number?: delay
// 轮询查询目标次数
Number?: repeat
// 计算及显示引导图之前的钩子(可选)
Function?: before(Function: done)
// 引导图片的位置修正函数(可选,默认与目标左上对齐)
Function?: handler(Element:el, ImgElement: img, Object: option)
}
实现功能说明
实现逻辑
- 根据steps异步加载所有src
- 添加页面元素canvas并设置当前步骤
- 获取页面高宽并清除click事件
- 轮询selector直到repeat之前获取到对象
- 延迟delay时间
- 执行before
- 根据handler在canvas上绘制背景及图片位置
- 添加click事件
- 设置当前步骤为下一个step,重复2-9步骤直到steps为空
不太会写文章,希望源码和这些简介对你有帮助,如果喜欢给个赞
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。