File tree Expand file tree Collapse file tree 4 files changed +23
-13
lines changed Expand file tree Collapse file tree 4 files changed +23
-13
lines changed Original file line number Diff line number Diff line change 1
- import $ from 'jquery' ;
2
1
import { get } from '@ember/object' ;
3
2
import AnchorComponent from 'ember-anchor/components/ember-anchor' ;
4
3
import config from 'ember-api-docs/config/environment' ;
4
+ import getOffset from 'ember-api-docs/utils/get-offset' ;
5
5
6
6
export default AnchorComponent . extend ( {
7
-
8
7
// This overrides Ember Anchor to support scrolling within a fixed position element
9
8
_scrollToElemPosition ( ) {
10
9
let qp = this . anchorQueryParam ;
11
10
let qpVal = this . get ( get ( this , 'attrs.a' ) ? 'a' : `controller.${ qp } ` ) ;
12
- let elem = $ ( `[data-${ qp } ="${ qpVal } "]` ) ;
13
- let offset = elem . offset ( ) ? elem . offset ( ) . top : 0 ;
14
- if ( offset ) {
15
- $ ( config . APP . scrollContainerSelector ) . scrollTop ( offset ) ;
11
+ let elem = document . querySelector ( `[data-${ qp } ="${ qpVal } "]` ) ;
12
+
13
+ if ( elem && elem . offsetHeight ) {
14
+ const offsetToScroll = getOffset ( elem , config . APP . scrollContainerSelector )
15
+ document . querySelector ( config . APP . scrollContainerSelector ) . scrollTo ( 0 , offsetToScroll ) ;
16
16
}
17
17
}
18
18
} ) ;
Original file line number Diff line number Diff line change 1
1
import Mixin from '@ember/object/mixin' ;
2
2
import { inject as service } from '@ember/service' ;
3
- import $ from 'jquery' ;
4
3
import config from 'ember-api-docs/config/environment' ;
4
+ import getOffset from 'ember-api-docs/utils/get-offset' ;
5
5
6
6
export default Mixin . create ( {
7
7
@@ -15,10 +15,11 @@ export default Mixin.create({
15
15
didTransition ( ) {
16
16
this . _super ( ) ;
17
17
if ( ( typeof FastBoot === 'undefined' ) && window . location . search === '?anchor=' ) {
18
- let elem = $ ( '#methods' ) ;
19
- let offset = elem . offset ( ) ? elem . offset ( ) . top : 0 ;
20
- if ( offset ) {
21
- $ ( config . APP . scrollContainerSelector ) . scrollTop ( offset - 10 ) ;
18
+ let elem = document . querySelector ( '#methods' ) ;
19
+
20
+ if ( elem && elem . offsetHeight ) {
21
+ const offsetToScroll = getOffset ( elem , config . APP . scrollContainerSelector )
22
+ document . querySelector ( config . APP . scrollContainerSelector ) . scrollTo ( 0 , offsetToScroll - 10 ) ;
22
23
return ;
23
24
}
24
25
}
Original file line number Diff line number Diff line change 1
1
import Service from '@ember/service' ;
2
- import $ from 'jquery' ;
3
2
import config from 'ember-api-docs/config/environment' ;
4
3
5
4
const { scrollContainerSelector } = config . APP ;
@@ -27,7 +26,8 @@ export default Service.extend({
27
26
28
27
doReset ( ) {
29
28
if ( this . _shouldResetScroll ) {
30
- $ ( scrollContainerSelector ) . scrollTop ( 0 ) ;
29
+ const selector = document . querySelector ( scrollContainerSelector ) ;
30
+ selector . scrollTo ( 0 , 0 ) ;
31
31
this . set ( '_shouldResetScroll' , false ) ;
32
32
}
33
33
}
Original file line number Diff line number Diff line change
1
+ export default function getOffset ( element , container ) {
2
+ let offsetTop = element . offsetTop ;
3
+ let parent = element . offsetParent ;
4
+ while ( parent != null && parent != container ) {
5
+ offsetTop += parent . offsetTop ;
6
+ parent = parent . offsetParent ;
7
+ }
8
+ return offsetTop ;
9
+ }
You can’t perform that action at this time.
0 commit comments