mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-08 15:51:16 +08:00
chore(): sync with main
This commit is contained in:
@ -692,6 +692,16 @@ export class Refresher implements ComponentInterface {
|
||||
// and close the refresher
|
||||
// set that the refresh is actively cancelling
|
||||
this.cancel();
|
||||
} else if (this.state === RefresherState.Inactive) {
|
||||
/**
|
||||
* The pull to refresh gesture was aborted
|
||||
* so we should immediately restore any overflow styles
|
||||
* that have been modified. Do not call this.cancel
|
||||
* because the styles will only be reset after a timeout.
|
||||
* If the gesture is aborted then scrolling should be
|
||||
* available right away.
|
||||
*/
|
||||
this.restoreOverflowStyle();
|
||||
}
|
||||
}
|
||||
|
||||
@ -716,7 +726,12 @@ export class Refresher implements ComponentInterface {
|
||||
this.state = RefresherState.Inactive;
|
||||
this.progress = 0;
|
||||
this.didStart = false;
|
||||
this.setCss(0, '0ms', false, '');
|
||||
|
||||
/**
|
||||
* Reset any overflow styles so the
|
||||
* user can scroll again.
|
||||
*/
|
||||
this.setCss(0, '0ms', false, '', true);
|
||||
}, 600);
|
||||
|
||||
// reset the styles on the scroll element
|
||||
@ -725,7 +740,13 @@ export class Refresher implements ComponentInterface {
|
||||
this.setCss(0, this.closeDuration, true, delay);
|
||||
}
|
||||
|
||||
private setCss(y: number, duration: string, overflowVisible: boolean, delay: string) {
|
||||
private setCss(
|
||||
y: number,
|
||||
duration: string,
|
||||
overflowVisible: boolean,
|
||||
delay: string,
|
||||
shouldRestoreOverflowStyle = false
|
||||
) {
|
||||
if (this.nativeRefresher) {
|
||||
return;
|
||||
}
|
||||
@ -738,11 +759,18 @@ export class Refresher implements ComponentInterface {
|
||||
scrollStyle.transform = backgroundStyle.transform = y > 0 ? `translateY(${y}px) translateZ(0px)` : '';
|
||||
scrollStyle.transitionDuration = backgroundStyle.transitionDuration = duration;
|
||||
scrollStyle.transitionDelay = backgroundStyle.transitionDelay = delay;
|
||||
if (overflowVisible) {
|
||||
scrollStyle.overflow = 'hidden';
|
||||
} else {
|
||||
this.restoreOverflowStyle();
|
||||
}
|
||||
scrollStyle.overflow = overflowVisible ? 'hidden' : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset the overflow styles only once
|
||||
* the pull to refresh effect has been closed.
|
||||
* This ensures that the gesture is done
|
||||
* and the refresh operation has either
|
||||
* been aborted or has completed.
|
||||
*/
|
||||
if (shouldRestoreOverflowStyle) {
|
||||
this.restoreOverflowStyle();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user