gpt4 book ai didi

javascript - 如何仅在鼠标滚轮滚动时触发

转载 作者:行者123 更新时间:2023-12-02 22:43:56 26 4
gpt4 key购买 nike

我正在尝试用鼠标滚轮滚动来执行一些操作。我希望无论你滚动滚轮的速度有多快或多少次,它都算作“一”。现在,如果您快速滚动,它会计数更多次。

https://stackblitz.com/edit/angular-yttk3y

最佳答案

有一个计时器来限制滚动一定的持续时间并保留滚动方向以检测滚动方向的变化。

import { Directive, HostListener } from '@angular/core';
import { timer } from 'rxjs';
@Directive({
selector: '[appMouseScroll]'
})
export class MouseScrollDirective {
Ttimer;
isMouseWheelInRogress;
scrollUp;

@HostListener('wheel', ['$event']) onMouseScroll(e) {

if (!this.isMouseWheelInRogress || (!this.scrollUp && e.deltaY < 0 || this.scrollUp && e.deltaY > 0)) {
if (this.Ttimer) {
this.Ttimer.unsubscribe();
}
this.Ttimer = timer(500).subscribe(() => {
this.isMouseWheelInRogress = false;
});

if (e.deltaY < 0) {
this.scrollUp = true;
console.log('scrolling up');
} else if (e.deltaY > 0) {
this.scrollUp = false;
console.log('scrolling down');
}
}
this.isMouseWheelInRogress = true;
}
}

关于javascript - 如何仅在鼠标滚轮滚动时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58486264/

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