Skip to content

Commit fd5f414

Browse files
iamkunlzq4047
authored andcommitted
InfiniteScroll: Skip trigger event on invisible element (ElemeFE#17553)
* InfiniteScroll: Do not trigger event on invisible element * InfiniteScroll: Do not trigger event on invisible element2
1 parent 66f89f1 commit fd5f414

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

packages/infinite-scroll/src/main.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ const handleScroll = function(cb) {
9292

9393
if (disabled) return;
9494

95+
const containerInfo = container.getBoundingClientRect();
96+
if (!containerInfo.width && !containerInfo.height) return;
97+
9598
let shouldTrigger = false;
9699

97100
if (container === el) {

test/unit/specs/infiniteScroll.spec.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,31 @@ describe('InfiniteScroll', () => {
2828
await wait();
2929
expect(vm.$el.innerText.indexOf('2') > -1).to.be.true;
3030
});
31+
32+
it('invisible element not trigger', async() => {
33+
vm = createVue({
34+
template: `
35+
<div v-show="false">
36+
<ul ref="scrollTarget" v-infinite-scroll="load" style="height: 300px;overflow: auto;">
37+
<li v-for="i in count" style="display: flex;height: 50px;">{{ i }}</li>
38+
</ul>
39+
</div>
40+
`,
41+
data() {
42+
return {
43+
count: 0
44+
};
45+
},
46+
methods: {
47+
load() {
48+
this.count += 2;
49+
}
50+
}
51+
}, true);
52+
vm.$refs.scrollTarget.scrollTop = 2000;
53+
await wait();
54+
expect(vm.$el.innerText.indexOf('2') > -1).to.be.false;
55+
});
56+
3157
});
3258

0 commit comments

Comments
 (0)