mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-05-20 21:39:15 +08:00
fix(@vant/use): useScrollParent ssr (#8603)
This commit is contained in:
parent
f0eb0d18f0
commit
1203b29720
@ -1,8 +1,10 @@
|
||||
import { ref, Ref, onMounted } from 'vue';
|
||||
import { inBrowser } from '../utils';
|
||||
|
||||
type ScrollElement = HTMLElement | Window;
|
||||
|
||||
const overflowScrollReg = /scroll|auto/i;
|
||||
const defaultRoot = inBrowser ? window : undefined;
|
||||
|
||||
function isElement(node: Element) {
|
||||
const ELEMENT_NODE_TYPE = 1;
|
||||
@ -14,7 +16,10 @@ function isElement(node: Element) {
|
||||
}
|
||||
|
||||
// https://github.com/youzan/vant/issues/3823
|
||||
export function getScrollParent(el: Element, root: ScrollElement = window) {
|
||||
export function getScrollParent(
|
||||
el: Element,
|
||||
root: ScrollElement | undefined = defaultRoot
|
||||
) {
|
||||
let node = el;
|
||||
|
||||
while (node && node !== root && isElement(node)) {
|
||||
@ -30,7 +35,7 @@ export function getScrollParent(el: Element, root: ScrollElement = window) {
|
||||
|
||||
export function useScrollParent(
|
||||
el: Ref<Element | undefined>,
|
||||
root: ScrollElement = window
|
||||
root: ScrollElement | undefined = defaultRoot
|
||||
) {
|
||||
const scrollParent = ref<Element | Window>();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user