我已经为mousewheel写了一个指令。它与chrome和firefox工作正常,但是没有在IE中工作。我有一个下拉列表,当我在内部滚动下拉时,整个页面得到滚动。我写了一个指令但是它在chrome和firefox中运行良好,但在IE中不行。我正在关注以下链接。
[enter link description here][1]
[1]: http://plnkr.co/edit/dejs2Fo2YjrOK9EiJJve?p=preview
mousewheel.directive.ts
import { Directive, Output, HostListener, EventEmitter, ElementRef,Renderer } from '@angular/core';
@Directive({
//selector: '[scroller]',
selector: '[scroller]',
})
export class ScrollerDirective {
constructor(private elRef: ElementRef, private renderer: Renderer) {
renderer.listen(elRef.nativeElement, 'wheel', (e:any) => {
let el = elRef.nativeElement;
let conditions = ((el.scrollTop + el.offsetHeight > el.scrollHeight)) && e.deltaY > 0 || el.scrollTop === 0 && e.deltaY < 0;
if (conditions) {
e = e || window.event;
if (e.preventDefault)
e.preventDefault();
e.returnValue = false;
}
})
}
}
HTML
<ul scroller class="dropdown-menu alert-dropdown addscroll" aria-labelledby="name2">
<li *ngFor="let errorcode of tabItems">
<a (click)="filterCode(errorcode?.clientCode, 'clintcode')" class="dropdown-item">{{ errorcode?.clientCode}}</a>
</li>
</ul>