@@ -71,27 +71,20 @@ export function scrollIntoView(scrollView: HTMLElement, element: HTMLElement): v
71
71
let targetTop = offsetY - scrollMarginTopNumber ;
72
72
let targetBottom = offsetY + height + scrollMarginBottomNumber ;
73
73
74
- // convenience vars for padded viewport edges (content coords)
75
- let viewportLeft = x + parseInt ( borderLeftWidth , 10 ) + scrollPaddingLeftNumber ;
76
- let viewportRight = maxX - scrollPaddingRightNumber ;
77
- let viewportTop = y + parseInt ( borderTopWidth , 10 ) + scrollPaddingTopNumber ;
78
- let viewportBottom = maxY - scrollPaddingBottomNumber ;
74
+ let scrollPortLeft = x + parseInt ( borderLeftWidth , 10 ) + scrollPaddingLeftNumber ;
75
+ let scrollPortRight = maxX - scrollPaddingRightNumber ;
76
+ let scrollPortTop = y + parseInt ( borderTopWidth , 10 ) + scrollPaddingTopNumber ;
77
+ let scrollPortBottom = maxY - scrollPaddingBottomNumber ;
79
78
80
- const spansBothX =
81
- targetLeft <= viewportLeft && targetRight >= viewportRight ;
82
-
83
- if ( ! spansBothX ) {
79
+ if ( targetLeft > scrollPortLeft || targetRight < scrollPortRight ) {
84
80
if ( targetLeft <= x + scrollPaddingLeftNumber ) {
85
81
x = targetLeft - parseInt ( borderLeftWidth , 10 ) - scrollPaddingLeftNumber ;
86
82
} else if ( targetRight > maxX - scrollPaddingRightNumber ) {
87
83
x += targetRight - maxX + scrollPaddingRightNumber ;
88
84
}
89
85
}
90
86
91
- const spansBothY =
92
- targetTop <= viewportTop && targetBottom >= viewportBottom ;
93
-
94
- if ( ! spansBothY ) {
87
+ if ( targetTop > scrollPortTop || targetBottom < scrollPortBottom ) {
95
88
if ( targetTop <= borderAdjustedY + scrollPaddingTopNumber ) {
96
89
y = targetTop - parseInt ( borderTopWidth , 10 ) - scrollPaddingTopNumber ;
97
90
} else if ( targetBottom > maxY - scrollPaddingBottomNumber ) {
0 commit comments