From c4de1dc8f749b354e61d04ea80b75e7ee88c1c55 Mon Sep 17 00:00:00 2001 From: cipchk Date: Sat, 15 Jan 2022 16:57:45 +0800 Subject: [PATCH] fix(module:back-top): fix more reliable scrolling listener - close #7199 --- components/back-top/back-top.component.ts | 4 ++-- components/back-top/back-top.spec.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/back-top/back-top.component.ts b/components/back-top/back-top.component.ts index 41c0b67b3d..c0749d91a5 100644 --- a/components/back-top/back-top.component.ts +++ b/components/back-top/back-top.component.ts @@ -24,7 +24,7 @@ import { ViewEncapsulation } from '@angular/core'; import { fromEvent, Subject } from 'rxjs'; -import { takeUntil, throttleTime } from 'rxjs/operators'; +import { debounceTime, takeUntil } from 'rxjs/operators'; import { fadeMotion } from 'ng-zorro-antd/core/animation'; import { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config'; @@ -127,7 +127,7 @@ export class NzBackTopComponent implements OnInit, OnDestroy, OnChanges { this.handleScroll(); this.zone.runOutsideAngular(() => { fromEvent(this.getTarget(), 'scroll') - .pipe(throttleTime(50), takeUntil(this.scrollListenerDestroy$)) + .pipe(debounceTime(50), takeUntil(this.scrollListenerDestroy$)) .subscribe(() => this.handleScroll()); }); } diff --git a/components/back-top/back-top.spec.ts b/components/back-top/back-top.spec.ts index d89fa4d9c6..85a8ed6696 100644 --- a/components/back-top/back-top.spec.ts +++ b/components/back-top/back-top.spec.ts @@ -162,10 +162,10 @@ describe('Component:nz-back-top', () => { })); it('element scroll shows the button', fakeAsync(() => { - const throttleTime = 50; + const time = 50; componentObject.scrollTo(fakeTarget, defaultVisibilityHeight + 1); - tick(throttleTime + 1); + tick(time + 1); fixture.detectChanges(); expect(componentObject.backTopButton() === null).toBe(false); @@ -174,10 +174,10 @@ describe('Component:nz-back-top', () => { it('element (use string id) scroll shows the button', fakeAsync(() => { component.nzTarget = '#fakeTarget'; - const throttleTime = 50; + const time = 50; componentObject.scrollTo(fakeTarget, defaultVisibilityHeight + 1); - tick(throttleTime + 1); + tick(time + 1); fixture.detectChanges(); expect(componentObject.backTopButton() === null).toBe(false);