【发布时间】:2017-03-30 17:20:14
【问题描述】:
我正在使用 intro.js 设置我的网站导览,并且我想将工具提示的默认位置(当未附加到任何元素时)设置在页面顶部附近而不是垂直中心。
看起来没有直接设置它的选项,但是有没有办法改变CSS? (或者通过编辑源代码,尽管这是最后的手段)。
【问题讨论】:
标签: javascript html css intro.js
我正在使用 intro.js 设置我的网站导览,并且我想将工具提示的默认位置(当未附加到任何元素时)设置在页面顶部附近而不是垂直中心。
看起来没有直接设置它的选项,但是有没有办法改变CSS? (或者通过编辑源代码,尽管这是最后的手段)。
【问题讨论】:
标签: javascript html css intro.js
我需要做类似的事情。不优雅,但很有效。
在 API 文档中,有一个 onafterchange 方法。给它一个回调函数,每次显示步骤时都会触发它。
如果工具提示具有目标元素,则回调的参数包含该元素。如果工具提示没有元素,则参数包含类 introjsFloatingElement 的元素。因此,您只需要检查该元素上是否存在该类。如果是这样,您可以调整工具提示元素的样式。
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();
注意:
【讨论】:
onafterchange 设置它是个好主意。我已经通过编辑源 CSS 让它工作了一些,但这更好。
我查看了 intro.js 文档。您应该可以将这行代码添加到您的脚本中。
introJs().setOption("tooltipPosition", "top");
【讨论】:
tooltipClass 并更改CSS 中的位置。但这只有在您可以在每个单独的工具提示上使用 setOption 时才有效。
steps 数组 (see here) 独立设置 tooltipClass,但它不适用于位置设置,因为 intro.js javascript 使用 style 标记覆盖任何自定义类定位。