Skip to content

Commit 3230c9a

Browse files
committed
fix scroll in IE/Firefox
1 parent 6a67f0c commit 3230c9a

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/scripts/Joyride.jsx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React from 'react';
22
import scroll from 'scroll';
33
import autobind from 'react-autobind';
4+
import { getRootEl } from './utils';
45

56
import Beacon from './Beacon';
67
import Tooltip from './Tooltip';
@@ -154,8 +155,11 @@ export default class Joyride extends React.Component {
154155
this.calcPlacement();
155156
}
156157

157-
if (state.play && props.scrollToSteps && (props.scrollToFirstStep || (state.index > 0 || prevState.index > state.index))) {
158-
scroll.top(['ie', 'firefox'].indexOf(this.getBrowser()) > -1 ? document.documentElement : document.body, this.getScrollTop());
158+
if (
159+
state.play && props.scrollToSteps &&
160+
(props.scrollToFirstStep || (state.index > 0 || prevState.index > state.index))
161+
) {
162+
scroll.top(getRootEl(), this.getScrollTop());
159163
}
160164
}
161165

@@ -387,17 +391,17 @@ export default class Joyride extends React.Component {
387391
const step = props.steps[state.index];
388392
const position = this.calcPosition(step);
389393
const target = document.querySelector(step.selector);
390-
const targetTop = target.getBoundingClientRect().top + document.body.scrollTop;
391-
let scrollTop = 0;
394+
const targetTop = target.getBoundingClientRect().top + (window.pageYOffset || document.documentElement.scrollTop);
395+
let scrollTo = 0;
392396

393397
if (/^top/.test(position)) {
394-
scrollTop = Math.floor(state.yPos - props.scrollOffset);
398+
scrollTo = Math.floor(state.yPos - props.scrollOffset);
395399
}
396400
else if (/^bottom|^left|^right/.test(position)) {
397-
scrollTop = Math.floor(targetTop - props.scrollOffset);
401+
scrollTo = Math.floor(targetTop - props.scrollOffset);
398402
}
399403

400-
return scrollTop;
404+
return scrollTo;
401405
}
402406

403407
/**
@@ -816,8 +820,8 @@ export default class Joyride extends React.Component {
816820

817821
return (
818822
<div className="joyride">
819-
{component}
820-
{standaloneTooltip}
823+
{component}
824+
{standaloneTooltip}
821825
</div>
822826
);
823827
}

0 commit comments

Comments
 (0)