diff --git a/src/calendar/index.js b/src/calendar/index.js index 8a0dd9712..31929c68a 100644 --- a/src/calendar/index.js +++ b/src/calendar/index.js @@ -171,7 +171,6 @@ export default createComponent({ this.init(); }, - /* istanbul ignore next */ activated() { this.init(); }, diff --git a/src/list/index.js b/src/list/index.js index cfb38e2e2..b028c4c02 100644 --- a/src/list/index.js +++ b/src/list/index.js @@ -42,9 +42,22 @@ export default createComponent({ // use sync innerLoading state to avoid repeated loading in some edge cases const loading = ref(false); const root = ref(); - const placeholderRef = ref(); + const placeholder = ref(); const scrollParent = useScrollParent(root); + const getScrollParentRect = () => { + const element = scrollParent.value; + if (element.getBoundingClientRect) { + return element.getBoundingClientRect(); + } + const height = element.innerHeight; + return { + top: 0, + height, + bottom: height, + }; + }; + const check = () => { nextTick(() => { if (loading.value || props.finished || props.error) { @@ -52,27 +65,14 @@ export default createComponent({ } const { offset, direction } = props; - let scrollParentRect; + const scrollParentRect = getScrollParentRect(); - if (scrollParent.value.getBoundingClientRect) { - scrollParentRect = scrollParent.value.getBoundingClientRect(); - } else { - scrollParentRect = { - top: 0, - bottom: scrollParent.value.innerHeight, - }; - } - - const scrollParentHeight = - scrollParentRect.bottom - scrollParentRect.top; - - /* istanbul ignore next */ - if (!scrollParentHeight || isHidden(root)) { + if (!scrollParentRect.height || isHidden(root)) { return false; } let isReachEdge = false; - const placeholderRect = useRect(placeholderRef); + const placeholderRect = useRect(placeholder); if (direction === 'up') { isReachEdge = scrollParentRect.top - placeholderRect.top <= offset; @@ -148,9 +148,7 @@ export default createComponent({ return () => { const Content = slots.default?.(); - const Placeholder = ( -
- ); + const Placeholder = ; return (