intro.js - 按钮和箭头在 intro.js 中有不同的导航行为
问题描述
使用onbeforechange,我触发了对页面的更改——打开一个菜单——以便该步骤可以在游览期间突出显示该菜单。当我使用箭头进行导航时,效果很好:菜单完全呈现,整个菜单突出显示,工具提示显示在一边。
但是,当我使用“下一步”按钮(或返回,如果返回)时,这不能以 2 种不同的方式正常工作: 1 - 菜单未完全呈现。显示菜单 div,但不显示菜单项。菜单显示为空。2 - 工具提示出现在(空)菜单上方,而不是在旁边。
似乎存在时间问题/竞争条件,在使用按钮时,在菜单可以完全呈现之前触发该步骤,但在使用箭头时不会。
知道原因是什么或如何解决。
==更新==我的理论是正确的。我设法通过修改下一个和上一个按钮的 onclick 处理程序并将对 _nextStep 和 _previousStep 的调用放在 setTimeout 函数中来“修复”这个问题,即使只有 50 毫秒,如下所示:
nextTooltipButton.onclick = function() {
if (self._introItems.length - 1 !== self._currentStep) {
setTimeout(function()
{
_nextStep.call(self);
},
50);
}
};
但是,我希望通过简单地覆盖这些 onclick 处理程序所在的现有函数来进行此更改,但该函数似乎是私有的并且不能被覆盖。(如果有办法做到这一点,请告诉我。)相反,我必须获取 intro.js 文件的本地副本并对其进行修改。
最好将这个微小的更改添加到主分支,这对性能没有明显的影响。
仍在寻找更好的答案。
解决方案
推荐阅读
- android - Android图像根据设备屏幕尺寸更改图像尺寸
- asp.net - 当 dataTable 为 null 时,dataAdapater.Fill(dataTable) 抛出 ArgumentNullException
- performance - 多次调用 CoInitialize 的开销是多少?
- excel - 在 VBA 上计算总和
- python - 如何修复在写入文件后重新启动自身 3 行的函数?
- hyperledger - 如何在交易中对同一资产进行多次更新
- git - 最新更新在拉取、推送或同步时带来 Github 错误
- json - 尝试访问从 Laravel 中的 JSON 转换而来的关联数组时出现问题
- c++11 - 构造函数和复制构造函数
- excel - 用户操作后如何继续循环?