mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-08 15:51:16 +08:00
Merge branch 'main' into chore/update-from-main
This commit is contained in:
@ -255,6 +255,15 @@ export class Refresher implements ComponentInterface {
|
||||
this.didRefresh = true;
|
||||
hapticImpact({ style: ImpactStyle.Light });
|
||||
|
||||
/**
|
||||
* Clear focus from any active element to prevent scroll jumps
|
||||
* when the refresh completes
|
||||
*/
|
||||
const activeElement = document.activeElement as HTMLElement;
|
||||
if (activeElement?.blur !== undefined) {
|
||||
activeElement.blur();
|
||||
}
|
||||
|
||||
/**
|
||||
* Translate the content element otherwise when pointer is removed
|
||||
* from screen the scroll content will bounce back over the refresher
|
||||
@ -735,6 +744,16 @@ export class Refresher implements ComponentInterface {
|
||||
// place the content in a hangout position while it thinks
|
||||
this.setCss(this.pullMin, this.snapbackDuration, true, '');
|
||||
|
||||
/**
|
||||
* Clear focus from any active element to prevent the browser
|
||||
* from restoring focus and causing scroll jumps after refresh.
|
||||
* This ensures the view stays at the top after refresh completes.
|
||||
*/
|
||||
const activeElement = document.activeElement as HTMLElement;
|
||||
if (activeElement?.blur !== undefined) {
|
||||
activeElement.blur();
|
||||
}
|
||||
|
||||
// emit "refresh" because it was pulled down far enough
|
||||
// and they let go to begin refreshing
|
||||
this.ionRefresh.emit({
|
||||
|
||||
Reference in New Issue
Block a user