如何修复“属性'wheelDelta'在类型'WheelEvent'上不存在”,同时升级到angular 7,rxjs6?

问题描述 投票:2回答:1

我用rxjs6升级到angular7:在mouseWheelEvent类型我得到"Property 'wheelDelta' does not exist on type 'WheelEvent'"

我们对wheelDelta有什么选择吗?

mouseWheelFunc(event: MouseWheelEvent): void {

    //  var event = window.event || event; // old IE support

    let delta = Math.max(-1, Math.min(1, (event.wheelDelta || -event.detail)));

    if ( delta > 0) {
      this.mouseWheelUp.emit(event);
    } else if ( delta < 0) {
      this.mouseWheelDown.emit(event);
    }

    // for IE
    event.returnValue = false;
    // for Chrome and Firefox
    if ( event.preventDefault) {
      event.preventDefault();
    }
  }

src / modules / components / numeric-stepper / mousewheel.directive.ts中的错误(23,49):错误TS2339:类型'WheelEvent'上不存在属性'wheelDelta'。

angular7 rxjs6
1个回答
1
投票

似乎WheelEvent不再具有此属性,因为它说。现在他们添加了deltaY和deltaX。

现在你必须访问event.deltaY而不是event.wheelData

但是deltaY具有与wheelData相反的值。这意味着当事件上的wheelData为正(向上滚动)时,deltaY将为负数,反之亦然。

例:

改变这个:

        zoomScroll(event: WheelEvent) {
            if (event.wheelDelta > 0) {
                this.zoomIn();
            } else if (event.wheelDelta < 0) {
                this.zoomOut();
            }
        }

为了这:

       zoomScroll(event: WheelEvent) {
           if (event.deltaY < 0) {
               this.zoomIn();
           } else if (event.deltaY > 0) {
               this.zoomOut();
           }
    }

来源:https://github.com/Microsoft/TypeScript/issues/9071

© www.soinside.com 2019 - 2024. All rights reserved.