首页 > 解决方案 > 如果父级不可见,则 IntroJs 提示

问题描述

IntroJs 提示 当父元素不可见时,如何跳过或隐藏?出于某种原因,似乎只有内联对我的提示起作用。我在 HTML 的跨度中有数据提示,我需要检查最近的元素是否可见或父/子元素。

var hints = false;

var all = document.getElementsByTagName("*");

功能介绍功能(){

for (var i = 0, max = all.length; i < max; i++) {
    if ((isHidden(all[i]) && hints));
    document.getElementById("#helpFunc").html("Show Help");
    introJs().hideHints();
} else {
    document.getElementById("#helpFunc").html("Hide Help");
    introJs().showHints();
}
hints = !hints;

function isHidden(el) {
    var style = window.getComputedStyle(el);
    return ((style.display === 'none') || (style.visibility === 'hidden'));
}

}

标签: if-statementshow-hidevisibleintro.jshints

解决方案


与其尝试获取元素的计算样式,不如尝试检查元素边界矩形 - 如果没有,则表示该元素不可见。

!!el.getClientRects().length; // false means el or its parent(s) is hidden

LE:这不适用于“可见性:隐藏;” 尽管。因此,也许您可​​以将上述内容与您已有的内容结合起来。


推荐阅读