Skip to content

Commit 5ac5dfd

Browse files
committed
use requestAnimationFrame
1 parent 2648f19 commit 5ac5dfd

File tree

2 files changed

+10
-43
lines changed

2 files changed

+10
-43
lines changed

src/packages/tour/components/HelperLayer.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { style } from "../../../util/style";
22
import dom, { State } from "../../dom";
33
import { helperLayerClassName } from "../classNames";
4-
import { waitAndSetPositionRelativeToStep } from "../position";
4+
import { setPositionRelativeToStep } from "../position";
55
import { TourStep } from "../steps";
66

77
const { div } = dom.tags;
@@ -64,8 +64,7 @@ export const HelperLayer = ({
6464
// set the new position if the step or refreshes change
6565
if (!step.val || refreshes.val === undefined) return;
6666

67-
68-
waitAndSetPositionRelativeToStep(
67+
setPositionRelativeToStep(
6968
targetElement,
7069
helperLayer,
7170
step.val,

src/packages/tour/position.ts

Lines changed: 8 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -11,44 +11,12 @@ export const setPositionRelativeToStep = (
1111
step: TourStep,
1212
padding: number
1313
) => {
14-
setPositionRelativeTo(
15-
relativeElement,
16-
element,
17-
step.element as HTMLElement,
18-
step.position === "floating" ? 0 : padding
19-
);
20-
};
21-
22-
/**
23-
* Waits for the target element to be visible in viewport, then sets tooltip position.
24-
*/
25-
export const waitAndSetPositionRelativeToStep = (
26-
relativeElement: HTMLElement,
27-
tooltipLayer: HTMLElement,
28-
step: TourStep,
29-
padding: number
30-
) => {
31-
const target = step.element as HTMLElement;
32-
33-
const observer = new IntersectionObserver(
34-
(entries) => {
35-
const entry = entries[0];
36-
37-
if (entry.isIntersecting) {
38-
observer.disconnect();
39-
40-
setPositionRelativeToStep(
41-
relativeElement,
42-
tooltipLayer,
43-
step,
44-
padding
45-
);
46-
}
47-
},
48-
{
49-
threshold: 0.1,
50-
}
51-
);
52-
53-
observer.observe(target);
14+
requestAnimationFrame(() => {
15+
setPositionRelativeTo(
16+
relativeElement,
17+
element,
18+
step.element as HTMLElement,
19+
step.position === "floating" ? 0 : padding
20+
);
21+
});
5422
};

0 commit comments

Comments
 (0)