File tree 1 file changed +15
-2
lines changed
1 file changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -875,6 +875,19 @@ let referencePane = {
875
875
} ,
876
876
} ;
877
877
878
+ function getAbsoluteOffset ( el , offsetName ) {
879
+ // "offsetTop" => "borderTopWidth", "offsetLeft" => "borderLeftWidth"
880
+ const borderWidthName = offsetName . replace ( / o f f s e t ( .* ) / , 'border$1Width' ) ;
881
+ let d = el [ offsetName ] ;
882
+ for ( let parent = el . offsetParent ; parent ; parent = parent . offsetParent ) {
883
+ const parentStyle = getComputedStyle ( parent ) ;
884
+ const parentBorderWidth = parentStyle [ borderWidthName ] ;
885
+ const parentBorderPx = parseFloat ( parentBorderWidth ) ;
886
+ d += ( parentBorderPx || 0 ) + parent [ offsetName ] ;
887
+ }
888
+ return d ;
889
+ }
890
+
878
891
let Toolbox = {
879
892
init ( ) {
880
893
this . $outer = document . createElement ( 'div' ) ;
@@ -914,8 +927,8 @@ let Toolbox = {
914
927
this . entry = entry ;
915
928
this . $pinLink . textContent = menu . _pinnedIds [ entry . id ] ? 'Unpin' : 'Pin' ;
916
929
this . $outer . classList . add ( 'active' ) ;
917
- this . top = el . offsetTop - this . $outer . offsetHeight ;
918
- this . left = el . offsetLeft - 10 ;
930
+ this . top = getAbsoluteOffset ( el , ' offsetTop' ) - this . $outer . offsetHeight ;
931
+ this . left = getAbsoluteOffset ( el , ' offsetLeft' ) - 10 ;
919
932
this . $outer . setAttribute ( 'style' , 'left: ' + this . left + 'px; top: ' + this . top + 'px' ) ;
920
933
this . updatePermalink ( ) ;
921
934
this . updateReferences ( ) ;
You can’t perform that action at this time.
0 commit comments