diff --git a/components/popup/position.js b/components/popup/position.js
index <HASH>..<HASH> 100644
--- a/components/popup/position.js
+++ b/components/popup/position.js
@@ -174,7 +174,8 @@ export default function position(attrs) {
   }
 
   if (maxHeight === MaxHeight.SCREEN || maxHeight === 'screen') {
-    styles.maxHeight = window.innerHeight - styles.top - Dimension.MARGIN;
+    // this feature works properly only when direction is BOTTOM_* or *_BOTTOM
+    styles.maxHeight = window.innerHeight + scroll.top - styles.top - Dimension.MARGIN;
   } else if (maxHeight) {
     styles.maxHeight = maxHeight;
   }
RG-<I> Position: Incorrect calculation of max height for popup with maxHeight=SCREEN


Former-commit-id: <I>b<I>ac<I>c<I>fe<I>e0ca<I>beb<I>a