更新 2:
レンダリング プロセスでwebFrame.setZoomLevelLimits (v0.31.1+) を使用します(メイン プロセスとレンダラー プロセスの違い)。Mac のスマート ズームは引き続き document.addEventListener で動作するためです。
例require('electron').webFrame.setZoomLevelLimits(1, 1)
アップデート:
deltaYピンチ ズームのプロパティにはfloat値がありますが、通常のスクロール イベントでは戻りint値が返されます。これで、解決策は ctrl キーに問題がなくなりました。
デモ 2 .
document.addEventListener('mousewheel', function(e) {
if(e.deltaY % 1 !== 0) {
e.preventDefault();
}
});
ChromiummonitorEvents(document)を使用すると、このイベントの原因であることがわかりましたmousewheel。mousewheelピンチズームでトリガーされた理由はわかりません。次のステップでは、通常のスクロールとピンチ ズームの違いを見つけます。
ピンチズームには属性e.ctrlKey = trueがあり、通常のスクロールイベントには属性がありますe.ctrlKey = false。しかし、ctrlキーを押しながらページをスクロールするとe.ctrlKey、true.
より良い解決策が見つかりませんでした。:(
デモ
document.addEventListener('mousewheel', function(e) {
if(e.ctrlKey) {
e.preventDefault();
}
});