Angular 2+ 监听
监听页面大小变化
// 1. 引入:
import { fromEvent } from 'rxjs';
// 2. 使用(在constructor中或ngOnInit方法中):
// 在constructor中:
constructor() {
// 页面监听
fromEvent(window, 'resize')
.debounceTime(100) // 以免频繁处理
.subscribe((event) => {
// 这里处理页面变化时的操作
console.log('page window size change ..');
});
}
// 或在ngOnInit方法中
ngOnInit() {
// 页面监听
fromEvent(window, 'resize')
.debounceTime(100) // 以免频繁处理
.subscribe((event) => {
// 这里处理页面变化时的操作
console.log('page window size change ..');
});
}
监听页面滚动条变化
// 1. 引入:
import { fromEvent } from 'rxjs';
// 2. 使用(在constructor中或ngOnInit方法中):
iTime: any;
// 在constructor中:
constructor() {
// 页面监听
fromEvent(window, 'scroll')
.subscribe((event) => {
// 这里处理滚动条变化时的操作
clearTimeout(this.iTime); // 以免频繁处理
this.iTime = setTimeout(() => {
console.log('scroll change ..');
}, 1000);
});
}
// 在ngOnInit方法中
ngOnInit() {
// 页面监听
fromEvent(window, 'scroll')
.subscribe((event) => {
// 这里处理滚动条变化时的操作
clearTimeout(this.iTime);
this.iTime = setTimeout(() => {
console.log('scroll change ..');
}, 1000);
});
}
这篇博客介绍了如何在Angular2+应用中利用RxJS库来监听窗口大小变化和滚动条事件。通过导入fromEvent方法并结合debounceTime操作符,可以有效地处理页面尺寸调整和滚动时的事件,避免频繁触发处理函数。示例代码展示了在构造函数或ngOnInit钩子中订阅这两个事件,并在事件发生时进行相应操作。
2610

被折叠的 条评论
为什么被折叠?



