Skip to content

Commit e63a071

Browse files
committed
Fix bug with page-mode and check update demo
1 parent 5f21b66 commit e63a071

File tree

8 files changed

+34
-15
lines changed

8 files changed

+34
-15
lines changed

demos/item-mode/build.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demos/page-mode/App.vue

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<template>
22
<div class="app">
3-
<GithubCorner path="/item-mode" />
3+
<GithubCorner path="/page-mode" />
44
<div class="container">
5-
<Header title="item-mode"
5+
<Header title="page-mode"
66
:desciption="'Build ' + itemCount.toLocaleString() + ' items.'"
77
:start-index="start"
88
:on-data-change="onHeaderDataChange"
@@ -11,7 +11,6 @@
1111
<virtual-list class="list"
1212
:size="size"
1313
:remain="remain"
14-
:bench="30"
1514
:start="start"
1615
:pagemode="true"
1716
:item="item"
@@ -28,7 +27,7 @@ import Item from '../common/Item.vue'
2827
import VirtualList from 'vue-virtual-scroll-list'
2928
import { countStorage, getRandomUser } from '../common/util'
3029
31-
const remain = 6
30+
const remain = 17
3231
const itemSize = 80
3332
const itemCount = countStorage.get()
3433
@@ -77,4 +76,10 @@ export default {
7776

7877
<style lang="less">
7978
@import '../common/app.less';
79+
html,body {
80+
overflow: inherit;
81+
}
82+
.main {
83+
margin-bottom: 500px
84+
}
8085
</style>

demos/page-mode/build.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demos/variable-height/build.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demos/vfor-mode/build.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,14 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
475475
paddingBottom = 0;
476476
}
477477

478+
if (this.pagemode && this.$el && this.$el.parentElement) {
479+
var bodyRect = document.body.getBoundingClientRect();
480+
var elemRect = this.$el.parentElement.getBoundingClientRect();
481+
var offset = elemRect.top - bodyRect.top;
482+
paddingTop -= offset;
483+
if (paddingTop < 0) paddingTop = 0;
484+
}
485+
478486
delta.paddingTop = paddingTop;
479487
delta.paddingBottom = paddingBottom;
480488
delta.offsetAll = allHeight - this.size * this.remain;

src/index.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,13 @@
491491
if (paddingBottom < this.size) {
492492
paddingBottom = 0
493493
}
494-
494+
if (this.pagemode && this.$el && this.$el.parentElement) {
495+
let bodyRect = document.body.getBoundingClientRect()
496+
let elemRect = this.$el.parentElement.getBoundingClientRect()
497+
let offset = elemRect.top - bodyRect.top
498+
paddingTop -= offset
499+
if (paddingTop < 0) paddingTop = 0
500+
}
495501
delta.paddingTop = paddingTop
496502
delta.paddingBottom = paddingBottom
497503
delta.offsetAll = allHeight - this.size * this.remain

test/pagemode.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const theme = 'pagemode-test'
88

99
describe(theme, () => {
1010
const initSize = 40
11-
const initRemian = 6
11+
const initRemian = 10
1212
const initStart = 100
1313
const listCount = 1000
1414
const spy = sinon.stub()
@@ -69,7 +69,7 @@ describe(theme, () => {
6969
const itemFrags = wrapper.findAll('.for-item')
7070

7171
// default real dom count is remain + default bench.
72-
expect(itemFrags.length).toBe(6 + 6)
72+
expect(itemFrags.length).toBe(initRemian + initRemian)
7373

7474
// check every item render content.
7575
for (let i = 0; i < itemFrags.length; i++) {

0 commit comments

Comments
 (0)