Skip to content

Commit 47f1933

Browse files
committed
clip force to not conflict with clip simulate
1 parent 315d0be commit 47f1933

File tree

4 files changed

+13
-13
lines changed

4 files changed

+13
-13
lines changed

src/component/classes/state/clip.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ export class ClipModel {
88
forceForward: boolean;
99
forceBackward: boolean;
1010

11+
get force(): boolean {
12+
return this.forceForward || this.forceBackward;
13+
}
14+
1115
private infinite: boolean
1216

1317
constructor() {
@@ -19,6 +23,10 @@ export class ClipModel {
1923

2024
reset() {
2125
this.doClip = false;
26+
this.forceReset();
27+
}
28+
29+
forceReset() {
2230
this.simulate = false;
2331
this.forceForward = false;
2432
this.forceBackward = false;

src/component/processes/clip.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,24 +35,18 @@ export default class Clip {
3535
paddings.backward.size += item.size;
3636
}
3737
clipped.push(item.$index);
38-
if (clip.simulate) {
38+
if (clip.simulate && !clip.force) {
3939
buffer.removeItem(item);
4040
}
4141
return false;
4242
}
4343
return true;
4444
});
45-
// if (size.backward) {
46-
// paddings.forward.size += size.backward;
47-
// }
48-
// if (size.forward) {
49-
// paddings.backward.size += size.forward;
50-
// }
5145
logger.log(() => [
5246
`clipped ${clipped.length} items` +
53-
(size.backward ? `, +${size.backward} fwd px,` : '') +
54-
(size.forward ? `, +${size.forward} bwd px,` : ''),
55-
`range: [${clipped[0]}..${clipped[clipped.length - 1]}]`
47+
(size.backward ? `, +${size.backward} fwd px` : '') +
48+
(size.forward ? `, +${size.forward} bwd px` : '') +
49+
`, range: [${clipped[0]}..${clipped[clipped.length - 1]}]`
5650
]);
5751
logger.stat('after clip');
5852
}

src/component/processes/end.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export default class End {
4747
state.isInitialLoop = false;
4848
state.fetch.simulate = false;
4949
clip.noClip = scroller.settings.infinite || (next && clip.simulate);
50-
clip.simulate = false;
50+
clip.forceReset();
5151
state.lastPosition = scroller.viewport.scrollPosition;
5252
scroller.purgeInnerLoopSubscriptions();
5353
}

src/component/processes/userClip.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ export default class UserClip {
66
static run(scroller: Scroller, options?: ClipOptions) {
77
const _options = UserClip.checkOptions(options);
88

9-
scroller.state.clip.simulate = true;
10-
scroller.state.clip.doClip = true;
119
scroller.state.clip.forceForward = !_options.backwardOnly;
1210
scroller.state.clip.forceBackward = !_options.forwardOnly;
1311

0 commit comments

Comments
 (0)