From e653484f39ffa9e17a1747ea9cd066c1faff0f7c Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 16 Jul 2019 20:56:22 +0800 Subject: [PATCH] [improvement] extract resetScroll function (#3869) --- src/field/index.js | 11 ++--------- src/stepper/index.js | 10 ++-------- src/utils/dom/reset-scroll.ts | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 17 deletions(-) create mode 100644 src/utils/dom/reset-scroll.ts diff --git a/src/field/index.js b/src/field/index.js index d5ac2d1a063..970f46bd20e 100644 --- a/src/field/index.js +++ b/src/field/index.js @@ -2,9 +2,8 @@ import Icon from '../icon'; import Cell from '../cell'; import { cellProps } from '../cell/shared'; import { preventDefault } from '../utils/dom/event'; -import { getRootScrollTop, setRootScrollTop } from '../utils/dom/scroll'; +import { resetScroll } from '../utils/dom/reset-scroll'; import { createNamespace, isObj, isDef, addUnit } from '../utils'; -import { isIOS } from '../utils/validate/system'; const [createComponent, bem] = createNamespace('field'); @@ -134,13 +133,7 @@ export default createComponent({ onBlur(event) { this.focused = false; this.$emit('blur', event); - - // Hack for iOS12 page scroll - // https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800 - /* istanbul ignore next */ - if (isIOS()) { - setRootScrollTop(getRootScrollTop()); - } + resetScroll(); }, onClick(event) { diff --git a/src/stepper/index.js b/src/stepper/index.js index 5c6224d9d06..f9c7939c609 100644 --- a/src/stepper/index.js +++ b/src/stepper/index.js @@ -1,6 +1,5 @@ import { createNamespace, isDef, addUnit } from '../utils'; -import { getRootScrollTop, setRootScrollTop } from '../utils/dom/scroll'; -import { isIOS } from '../utils/validate/system'; +import { resetScroll } from '../utils/dom/reset-scroll'; const [createComponent, bem] = createNamespace('stepper'); @@ -156,12 +155,7 @@ export default createComponent({ event.target.value = this.currentValue; } - // Hack for iOS12 page scroll - // https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800 - /* istanbul ignore next */ - if (isIOS()) { - setRootScrollTop(getRootScrollTop()); - } + resetScroll(); }, longPressStep() { diff --git a/src/utils/dom/reset-scroll.ts b/src/utils/dom/reset-scroll.ts new file mode 100644 index 00000000000..8cdf18a4007 --- /dev/null +++ b/src/utils/dom/reset-scroll.ts @@ -0,0 +1,16 @@ +/** + * Hack for iOS12 page scroll + * https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800 + */ + +import { isIOS as checkIsIOS } from '../validate/system'; +import { getRootScrollTop, setRootScrollTop } from './scroll'; + +const isIOS = checkIsIOS(); + +/* istanbul ignore next */ +export function resetScroll() { + if (isIOS) { + setRootScrollTop(getRootScrollTop()); + } +}