假设这是小部件元素的HTML:
<div class = "a b">
<div class = "c d e">
</div>
</div>
我想听那个添加到DOM的小部件(最好是被html类捕获)。添加后,我想监听滚动事件(鼠标滚轮或下拉滚动器),以便用户滚动时,该小部件将从DOM中删除。
[我听说过各种实现,包括使用document.queryselector()
,@HostListener
,事件发射器,ngDoCheck
等。我正在寻找对性能影响最小的实现,最好是在我的角度组件中,我们称之为MyComponent
。
编辑:我正在处理的应用程序是大型企业应用程序
编辑2:我无权访问小部件的Angular组件,这就是为什么我不能使用@ViewChild
的原因,所以我能捕捉到它的唯一方法是将其添加到DOM时的类名。单击图标后显示窗口小部件。我也找不到该图标的onclick事件处理程序。
let new_div = document.createElement('div');
new_div.id = 'your_widget';
new_div.style.height = '5000px';
new_div.innerText = "hello";
document.body.appendChild(new_div);
document.addEventListener('scroll', (e)=>{
if(document.querySelector('#your_widget')){
document.querySelector('#your_widget').remove();
}
})
<body></body>