diff --git a/packages/field/index.js b/packages/field/index.js
index 485254359..c43812183 100644
--- a/packages/field/index.js
+++ b/packages/field/index.js
@@ -1,7 +1,8 @@
-import { use, isObj, isDef, isIOS } from '../utils';
 import Icon from '../icon';
 import Cell from '../cell';
 import { cellProps } from '../cell/shared';
+import { use, isObj, isDef, isIOS } from '../utils';
+import { getRootScrollTop } from '../utils/scroll';
 
 const [sfc, bem] = use('field');
 
@@ -107,7 +108,7 @@ export default sfc({
       // https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800
       /* istanbul ignore next */
       if (isIOS()) {
-        window.scrollTo(0, window.pageYOffset);
+        window.scrollTo(0, getRootScrollTop());
       }
     },
 
diff --git a/packages/utils/scroll.ts b/packages/utils/scroll.ts
index 2ce9c8b22..579140069 100644
--- a/packages/utils/scroll.ts
+++ b/packages/utils/scroll.ts
@@ -29,6 +29,10 @@ export function setScrollTop(element: ScrollElement, value: number) {
   'scrollTop' in element ? (element.scrollTop = value) : element.scrollTo(element.scrollX, value);
 }
 
+export function getRootScrollTop(): number {
+  return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
+}
+
 // get distance from element top to page top
 export function getElementTop(element: ScrollElement) {
   return (