遇到了 intro.js - 一种非常酷的方式来指导用户如何使用软件界面。我没有深入查看源代码,但想知道是否有人可以简要解释代码如何实现突出显示的区域(特别是尺寸/位置/zindexing)以实现效果。
提前感谢杰
遇到了 intro.js - 一种非常酷的方式来指导用户如何使用软件界面。我没有深入查看源代码,但想知道是否有人可以简要解释代码如何实现突出显示的区域(特别是尺寸/位置/zindexing)以实现效果。
提前感谢杰
我是 Intro.js 的作者 Afshin。让我向您介绍它实际上是如何工作的。
在一个聚焦/突出显示的元素中,发生了两件不同的事情:
1)制作一个辅助层。辅助层是焦点元素中的白色圆角层。
2) 更改目标元素的z-index
和position
,以使该元素位于页面中所有其他元素的前面。
如果目标元素(应该聚焦/突出显示的元素)的位置是:
Absolute/Relative:IntroJs 只是将目标元素设置z-index
为9999999
,因此目标元素位于页面中所有其他元素的前面。
静态:现在,IntroJs 将目标元素位置设置为relative
,然后将 设置z-index
为9999999
。
现在,目标元素位于页面中所有其他元素的前面。所以,最后一步,创建辅助元素。
为了创建辅助层,IntroJs 只需获取目标元素的高度、宽度、顶部和左侧,然后创建一个div
with 类introJs-helperLayer
(和 position absolute
)并将其附加到body
.
结论
为了专注于一个元素,IntroJs 做了两个步骤,首先创建一个辅助层(页面中的圆角层),然后制作目标元素的内容relative
,以便将其带到页面中所有元素的前面。
嗯 - 很简单。