From 66204dfcf11e971bc289fe66b43bfd75769e30ed Mon Sep 17 00:00:00 2001 From: neverland Date: Sun, 15 Nov 2020 15:14:13 +0800 Subject: [PATCH] fix(Sticky): not work in some cases (#7561) --- src/utils/dom/scroll.ts | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/src/utils/dom/scroll.ts b/src/utils/dom/scroll.ts index 6d7457f74..491847daa 100644 --- a/src/utils/dom/scroll.ts +++ b/src/utils/dom/scroll.ts @@ -5,8 +5,7 @@ function isWindow(val: unknown): val is Window { } // get nearest scroll element -// http://w3help.org/zh-cn/causes/SD9013 -// http://stackoverflow.com/questions/17016740/onscroll-function-is-not-working-for-chrome +// https://github.com/youzan/vant/issues/3823 const overflowScrollReg = /scroll|auto/i; export function getScroller(el: HTMLElement, root: ScrollElement = window) { let node = el; @@ -14,24 +13,13 @@ export function getScroller(el: HTMLElement, root: ScrollElement = window) { while ( node && node.tagName !== 'HTML' && + node.tagName !== 'BODY' && node.nodeType === 1 && node !== root ) { const { overflowY } = window.getComputedStyle(node); - if (overflowScrollReg.test(overflowY)) { - if (node.tagName !== 'BODY') { - return node; - } - - // see: https://github.com/youzan/vant/issues/3823 - const { overflowY: htmlOverflowY } = window.getComputedStyle( - node.parentNode as Element - ); - - if (overflowScrollReg.test(htmlOverflowY)) { - return node; - } + return node; } node = node.parentNode as HTMLElement; }