@@ -88,34 +88,24 @@ export const getTouchParentScroll = (
88
88
89
89
const scrollY = currentTarget . scrollHeight - currentTarget . clientHeight ;
90
90
const scrollX = currentTarget . scrollWidth - currentTarget . clientWidth ;
91
- /**
92
- * <div style="height: 300px">
93
- * <div style="height: 900px"></div>
94
- * </div>
95
- * 在没设定 overflow: auto 或 scroll 时,currentTarget 里获取不到 scrollTop 或 scrollLeft,
96
- * 预先用 scrollTo 来滚动,如果取出的值跟滚动前取出不同,则 currnetTarget 被设定了 overflow; 否则就是上面这种。
97
- */
98
- const t = currentTarget . scrollTop ;
99
- const l = currentTarget . scrollLeft ;
100
- currentTarget . scrollTop += 1 ;
101
- currentTarget . scrollLeft += 1 ;
102
- const currentT = currentTarget . scrollTop ;
103
- const currentL = currentTarget . scrollLeft ;
104
- currentTarget . scrollTop -= 1 ;
105
- currentTarget . scrollLeft -= 1 ;
91
+
92
+ const style = document . defaultView . getComputedStyle ( currentTarget ) ;
93
+ const overflowY = style . overflowY === 'auto' || style . overflowY === 'scroll' ;
94
+ const overflowX = style . overflowX === 'auto' || style . overflowX === 'scroll' ;
95
+
96
+ const y = scrollY && overflowY ;
97
+ const x = scrollX && overflowX ;
98
+
106
99
if (
107
- ( isY &&
108
- ( ! scrollY ||
109
- ! ( currentT - t ) ||
110
- ( scrollY &&
111
- ( ( currentTarget . scrollTop >= scrollY && differY < 0 ) ||
112
- ( currentTarget . scrollTop <= 0 && differY > 0 ) ) ) ) ) ||
113
- ( isX &&
114
- ( ! scrollX ||
115
- ! ( currentL - l ) ||
116
- ( scrollX &&
117
- ( ( currentTarget . scrollLeft >= scrollX && differX < 0 ) ||
118
- ( currentTarget . scrollLeft <= 0 && differX > 0 ) ) ) ) )
100
+ isY && ( ! y ||
101
+ ( y && (
102
+ ( currentTarget . scrollTop >= scrollY && differY < 0 ) ||
103
+ ( currentTarget . scrollTop <= 0 && differY > 0 )
104
+ ) ) ) ||
105
+ isX && ( ! x ||
106
+ x && (
107
+ ( currentTarget . scrollLeft >= scrollX && scrollX < 0 ) ||
108
+ ( currentTarget . scrollLeft <= 0 && scrollX > 0 ) ) )
119
109
) {
120
110
return getTouchParentScroll (
121
111
root ,
0 commit comments