要检测当前屏幕滑动在哪个元素上,可以使用Angular的HostListener装饰器来监听滚动事件,并使用ElementRef来获取元素的引用。以下是一个示例代码:
在组件中导入必要的模块和装饰器:
import { Component, HostListener, ElementRef } from '@angular/core';
在组件类中定义一个变量来存储当前滑动的元素:
currentElement: string;
在构造函数中注入ElementRef:
constructor(private el: ElementRef) {}
使用HostListener装饰器来监听滚动事件:
@HostListener('window:scroll', ['$event'])
onScroll(event) {
// 获取当前滑动位置
const scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
// 获取元素的相对位置
const elementPosition = this.el.nativeElement.getBoundingClientRect().top + scrollPosition;
// 判断滑动位置是否在元素上
if (scrollPosition >= elementPosition) {
this.currentElement = 'Element1';
} else {
this.currentElement = 'Element2';
}
}
在模板中显示当前滑动的元素:
{{ currentElement }}
这样,当用户滑动屏幕时,currentElement变量将根据滑动位置来更新,以显示当前滑动在哪个元素上。