更新 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();
}
});