diff --git a/packages/infinite-scroll/src/main.js b/packages/infinite-scroll/src/main.js index 202f26cdbc..2942a22b48 100644 --- a/packages/infinite-scroll/src/main.js +++ b/packages/infinite-scroll/src/main.js @@ -92,6 +92,9 @@ const handleScroll = function(cb) { if (disabled) return; + const containerInfo = container.getBoundingClientRect(); + if (!containerInfo.width && !containerInfo.height) return; + let shouldTrigger = false; if (container === el) { diff --git a/test/unit/specs/infiniteScroll.spec.js b/test/unit/specs/infiniteScroll.spec.js index fc89748eab..7f3d26b0bd 100644 --- a/test/unit/specs/infiniteScroll.spec.js +++ b/test/unit/specs/infiniteScroll.spec.js @@ -28,5 +28,31 @@ describe('InfiniteScroll', () => { await wait(); expect(vm.$el.innerText.indexOf('2') > -1).to.be.true; }); + + it('invisible element not trigger', async() => { + vm = createVue({ + template: ` +
+ +
+ `, + data() { + return { + count: 0 + }; + }, + methods: { + load() { + this.count += 2; + } + } + }, true); + vm.$refs.scrollTarget.scrollTop = 2000; + await wait(); + expect(vm.$el.innerText.indexOf('2') > -1).to.be.false; + }); + });