|
45 | 45 | wclass: { type: String, default: '' }, |
46 | 46 | start: { type: Number, default: 0 }, |
47 | 47 | debounce: { type: Number, default: 0 }, |
| 48 | + bench: Number, |
48 | 49 | totop: Function, |
49 | 50 | tobottom: Function, |
50 | 51 | onscroll: Function |
|
57 | 58 | end: 0, // End index. |
58 | 59 | total: 0, // All items count. |
59 | 60 | keeps: 0, // Nums keeping in real dom. |
60 | | - benchs: 0, // Nums scroll pass should force update. |
| 61 | + bench: 0, // Nums scroll pass should force update. |
61 | 62 | scrollTop: 0, // Store scrollTop. |
62 | | - scrollDirect: 'd', // Scroll direction. |
| 63 | + scrollDirect: 'd', // Store scroll direction. |
63 | 64 | viewHeight: 0, // Container wrapper viewport height. |
64 | 65 | allPadding: 0, // All padding of not-render-yet doms. |
65 | 66 | paddingTop: 0, // Container wrapper real padding-top. |
|
128 | 129 | start = zone.start |
129 | 130 | } |
130 | 131 |
|
131 | | - // If scroll pass items within now benchs, do not update. |
132 | | - if (!isOver && (overs > delta.start) && (overs - delta.start <= delta.benchs)) { |
| 132 | + // For better performance, if scroll pass items within now bench, do not update. |
| 133 | + if (!isOver && (overs > delta.start) && (overs - delta.start <= delta.bench)) { |
133 | 134 | return |
134 | 135 | } |
135 | 136 |
|
|
196 | 197 | } |
197 | 198 |
|
198 | 199 | var hasPadding = slots.length > delta.keeps |
199 | | - |
200 | 200 | delta.total = slots.length |
201 | 201 | delta.paddingTop = this.size * (hasPadding ? delta.start : 0) |
202 | 202 | delta.allPadding = this.size * (hasPadding ? slots.length - delta.keeps : 0) |
|
209 | 209 |
|
210 | 210 | beforeMount: function () { |
211 | 211 | var delta = this.delta |
212 | | - var remain = this.remain |
213 | | - var benchs = Math.round(remain / 2) |
214 | | - |
215 | | - delta.benchs = benchs |
216 | | - delta.keeps = remain + benchs |
217 | | - delta.viewHeight = this.size * remain |
218 | | - delta.start = this.start >= remain ? this.start : 0 |
219 | | - delta.end = this.start + remain + benchs |
| 212 | + delta.bench = this.bench || this.remain |
| 213 | + delta.keeps = this.remain + delta.bench |
| 214 | + delta.viewHeight = this.size * this.remain |
| 215 | + delta.start = this.start >= this.remain ? this.start : 0 |
| 216 | + delta.end = this.start + this.remain + delta.bench |
220 | 217 | }, |
221 | 218 |
|
222 | 219 | mounted: function () { |
|
0 commit comments