gpt4 book ai didi

javascript - 如何通过窗口 :scroll target using @HostListener to trigger an Observable. fromEvent() 订阅?

转载 作者:行者123 更新时间:2023-11-29 16:06:49 24 4
gpt4 key购买 nike

我想保留在 @HostListner 中使用的类似语法,并使用 fromEvent() 从该事件创建一个流。当前滚动不会触发 fromEvent 订阅。

问题:如何触发 var source = Observable.fromEvent(target, 'window:scroll');

import { Directive, HostListener } from '@angular/core';
import {Observable} from "rxjs";
import 'rxjs/add/observable/fromEvent';

@Directive({
selector: '[mh-scroll]'
})
export class MhScroll {
lastKnownScrollPosition: number;
ticking: boolean;

constructor() {
this.lastKnownScrollPosition = 0;
this.ticking = false;
}


isElementCloseToTop(target) {

var source = Observable.fromEvent(target, 'window:scroll'); //this never triggers.

var subscription = source.subscribe(
(x) => {
console.log('Next: Clicked!');
},
(err) => {
console.log('Error: %s', err);
},
() => {
console.log('Completed');
});

this.ticking = false;
}


@HostListener('window:scroll', ['$event.target'])
triggeredScroll(target) {
this.lastKnownScrollPosition = window.scrollY;

if (!this.ticking) {
window.requestAnimationFrame(this.isElementCloseToTop.bind(this, target));
}

this.ticking = true;
}
}

最佳答案

应该是吧

var source = Observable.fromEvent(window, 'scroll');

关于javascript - 如何通过窗口 :scroll target using @HostListener to trigger an Observable. fromEvent() 订阅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39362962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com