|
211 | 211 |
|
212 | 212 | if(oldHelperLayer != null) {
|
213 | 213 | var oldHelperNumberLayer = oldHelperLayer.querySelector(".introjs-helperNumberLayer"),
|
214 |
| - oldtooltipLayer = oldHelperLayer.querySelector(".introjs-tooltiptext"), |
215 |
| - oldArrowLayer = oldHelperLayer.querySelector(".introjs-arrow"), |
216 |
| - oldtooltipContainer = oldHelperLayer.querySelector(".introjs-tooltip") |
| 214 | + oldtooltipLayer = oldHelperLayer.querySelector(".introjs-tooltiptext"), |
| 215 | + oldArrowLayer = oldHelperLayer.querySelector(".introjs-arrow"), |
| 216 | + oldtooltipContainer = oldHelperLayer.querySelector(".introjs-tooltip") |
| 217 | + |
| 218 | + //hide the tooltip |
| 219 | + oldtooltipContainer.style.opacity = 0; |
217 | 220 |
|
218 | 221 | //set new position to helper layer
|
219 | 222 | oldHelperLayer.setAttribute("style", "width: " + (elementPosition.width + 10) + "px; " +
|
220 | 223 | "height:" + (elementPosition.height + 10) + "px; " +
|
221 | 224 | "top:" + (elementPosition.top - 5) + "px;" +
|
222 | 225 | "left: " + (elementPosition.left - 5) + "px;");
|
223 |
| - //set current step to the label |
224 |
| - oldHelperNumberLayer.innerHTML = targetElement.getAttribute("data-step"); |
225 |
| - //set current tooltip text |
226 |
| - oldtooltipLayer.innerHTML = targetElement.getAttribute("data-intro"); |
| 226 | + //remove old classes |
227 | 227 | var oldShowElement = document.querySelector(".introjs-showElement");
|
228 | 228 | oldShowElement.className = oldShowElement.className.replace(/introjs-[a-zA-Z]+/g, '').trim();
|
229 |
| - _placeTooltip(targetElement, oldtooltipContainer, oldArrowLayer); |
| 229 | + //we should wait until the CSS3 transition is competed (it's 0.3 sec) to prevent incorrect `height` and `width` calculation |
| 230 | + setTimeout(function() { |
| 231 | + //set current step to the label |
| 232 | + oldHelperNumberLayer.innerHTML = targetElement.getAttribute("data-step"); |
| 233 | + //set current tooltip text |
| 234 | + oldtooltipLayer.innerHTML = targetElement.getAttribute("data-intro"); |
| 235 | + //set the tooltip position |
| 236 | + _placeTooltip(targetElement, oldtooltipContainer, oldArrowLayer); |
| 237 | + //show the tooltip |
| 238 | + oldtooltipContainer.style.opacity = 1; |
| 239 | + }, 350); |
| 240 | + |
230 | 241 | } else {
|
231 | 242 | var helperLayer = document.createElement("div"),
|
232 | 243 | helperNumberLayer = document.createElement("span"),
|
|
0 commit comments