javascript - 在 Firefox 中阻止 Ctrl+鼠标滚轮的默认行为
在我的应用程序中,我有一些地方将自定义缩放和自定义滚动分别绑定到 Ctrl+鼠标滚轮 和 Shift+鼠标滚轮。代码如下:
private mousewheelCallback = (event: MouseWheelEvent) => {
if(event.ctrlKey == true) {
if(event.deltaY > 0) {
this.zoomOut();
}
else {
this.zoomIn();
}
}
else {
if(event.deltaMode == event.DOM_DELTA_PIXEL) {
if(event.shiftKey == true){
this.scrollbarX.nativeElement.scrollLeft += event.deltaY;
event.preventDefault();
}
else {
this.scrollbarY.nativeElement.scrollTop += event.deltaY;
event.preventDefault();
}
}
}
return false;
}
在 Chrome 下这效果很好,但 Firefox 并不愿意执行事件处理程序,尽管它返回 false 并且也调用了 event.preventDefault();
答案#1
我还没有测试过,但可以尝试使用 event.stopPropagation();。更多信息请参阅 https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault