angular项目中在当前tab页中鼠标中键滚动产生的事件信息不让其他的tab页也产生事件怎么处理
在Angular项目中,可以通过以下步骤处理当前tab页中鼠标中键滚动事件,以防止其他tab页也产生事件:
- 在当前tab页的组件类中,创建一个变量来标识是否允许处理鼠标中键滚动事件。例如:
allowScrollEvent: boolean = false;
- 在当前tab页的组件类中,使用
HostListener装饰器监听鼠标滚动事件。例如:
@HostListener('window:wheel', ['$event'])
onMouseScroll(event: WheelEvent) {
if (!this.allowScrollEvent) {
event.preventDefault();
event.stopPropagation();
}
}
- 在当前tab页的组件类中,使用
HostBinding装饰器绑定document.body.style.overflow属性,以禁用滚动条。例如:
@HostBinding('style')
get style(): any {
return {
...this._style,
overflow: this.allowScrollEvent ? 'auto' : 'hidden'
};
}
private _style: any = {};
- 在当前tab页的组件类中,使用
ngOnInit生命周期钩子函数来设置allowScrollEvent变量为true,表示允许处理鼠标中键滚动事件。例如:
ngOnInit() {
this.allowScrollEvent = true;
}
- 在当前tab页离开时,例如使用
ngOnDestroy生命周期钩子函数,将allowScrollEvent变量设置为false,以禁止处理鼠标中键滚动事件。例如:
ngOnDestroy() {
this.allowScrollEvent = false;
}
通过以上步骤,可以在当前tab页中控制鼠标中键滚动事件的处理,而不会影响其他tab页
原文地址: https://www.cveoy.top/t/topic/hHl0 著作权归作者所有。请勿转载和采集!