我做了一个Angular Scroll Spy指令,该指令在Chrome中可以正常运行,但在IE11中不能正常运行
我正在尝试在Angular 6应用程序中实现间谍滚动功能。
我尝试使用Angular Directive来实现这一目标,该指令在Chrome中运行得很好,但是在IE11中却表现出一些奇怪的行为。
@Directive({
selector: '[scrollSpy]'
})
export class ScrollSpyDirective {
@Input() public spiedTags = [];
@Output() public sectionChange = new EventEmitter<string>();
private currentSection: string ='';
constructor(private _el: ElementRef) {}
@HostListener('scroll', ['$event'])
onScroll(event: any) {
let currentSection1: string='';
const children = this._el.nativeElement.children;
const scrollTop = event.target.scrollTop;
const parentOffset = event.target.offsetTop;
for (let i = 0; i < children.length; i++) {
const element = children[i];
if (this.spiedTags.some(spiedTag => spiedTag === element.tagName)) {
if ((element.offsetTop - parentOffset) <= scrollTop) {
currentSection1 = element.id;
}
}
}
if (currentSection1 !== this.currentSection) {
this.currentSection = currentSection1;
this.sectionChange.emit(this.currentSection);
}
}
}
这在Chrome上正常运行,但在IE11中无法正常工作。