更改默认的 intro.js 工具提示位置

Changing the default intro.js tooltip placement

我正在使用 intro.js 来设置我的网站浏览,我想将工具提示(未附加到任何元素时)的默认位置设置在页面顶部附近,而不是垂直中心。

看起来没有直接设置的选项,但是有没有办法改变CSS? (或者通过编辑源代码,尽管这是最后的手段)。

我查看了 intro.js 文档。您应该可以将这行代码添加到您的脚本中。

introJs().setOption("tooltipPosition", "top");

我需要做类似的事情。不优雅,但它有效。

在 API 文档中,有一个 onafterchange 方法。给它一个回调函数,它会在每次显示一个步骤时被触发。

如果工具提示有目标元素,则回调的参数包含该元素。如果工具提示没有元素,则参数包含带有 class introjsFloatingElement 的元素。因此,您只需要检查该元素上是否存在 class。如果是这样,您可以调整工具提示元素的样式。

var help = introJs();
help.onafterchange(function(targetEl){
    targetEl = jQuery(targetEl);

    // check if it's a floating tooltip (not attached to an element)
    if(targetEl.hasClass('introjsFloatingElement')){

        // adjust the position of these elements
        jQuery('.introjs-tooltipReferenceLayer').offset({top : 120});
        jQuery('.introjs-tooltip').css({
            opacity: 1,
            display: 'block',
            left: '50%',
            top: '50%',
            'margin-left': '-186px',
            'margin-top': '-91px'
        });
        jQuery('.introjs-helperNumberLayer').css({
            opacity: 1,
            left: '-204px',
            top: '-109px'
        });
    }
});

// add your steps
// ...

help.start();

注:

  • 我首先尝试了 onbeforechange,但没有成功。不知道为什么。
  • 起初,我尝试只调整 introjs-tooltipReferenceLayer 元素,但是嵌套元素(introjs-helperNumberLayerintrojs-tooltip) 在第一次显示时没有正确定位。我必须在后续显示中检查这些元素以获得正确的样式。
  • 使用 intro.js 2.5.0 测试。元素 classes 不是 api 规范的一部分,所以我不知道这个解决方案的前瞻性如何。