問題描述
有沒有辦法在 electron 應用程序中禁用捏合縮放?
Is there any way to disable pinch zoom in an electron app?
我無法使用此處所述的普通 javascript 方法從 web 視圖內部工作:https://stackoverflow.com/a/23510108/665261
I can't get it to work from inside the web-view with normal javascript methods as described here: https://stackoverflow.com/a/23510108/665261
似乎 --disable-pinch
標志是 電子不支持.
我嘗試了各種方法:
event.preventDefault()
on javascripttouchmove/mousemove
事件meta viewport
HTML 中的標簽-webkit-text-size-adjust
在 CSS 中- 電子的標志/配置
event.preventDefault()
on javascripttouchmove/mousemove
eventsmeta viewport
tags in HTML-webkit-text-size-adjust
in CSS- flags/config for electron
有沒有一般的 webkit 方法,或者特別是 electron?
Is there any method either for webkit in general, or electron in particular?
推薦答案
更新 2:
使用 webFrame.setZoomLevelLimits (v0.31.1+)在渲染過程(主進程和渲染進程的區別).因為 mac 上的智能縮放仍然適用于 document.addEventListener.
Use webFrame.setZoomLevelLimits (v0.31.1+) in render process (Differences Between Main Process and Renderer Process). Because smart zoom on mac still work with document.addEventListener.
示例 require('electron').webFrame.setZoomLevelLimits(1, 1)
更新:
deltaY
屬性具有 float
值,但正常滾動事件返回 int
值.現在解決方案用ctrl鍵沒有問題.
deltaY
property for pinch zoom has float
value, but normal scroll event return int
value. Now solution has no problem with ctrl key.
演示2.
document.addEventListener('mousewheel', function(e) {
if(e.deltaY % 1 !== 0) {
e.preventDefault();
}
});
<小時>
使用 Chromium monitorEvents(document)
我發現負責這個事件 mousewheel
.我不知道,為什么 mousewheel
用捏縮放觸發.下一步,找出普通滾動和捏縮放之間的區別.
Using Chromium monitorEvents(document)
I found that is responsible for this event mousewheel
. I don't know, why mousewheel
triggered with pinch zoom.
Next step, find difference between normal scroll and pinch zoom.
捏縮放有一個屬性e.ctrlKey = true
,普通滾動事件有e.ctrlKey = false
.但是如果你按住 ctrl
鍵并滾動頁面,e.ctrlKey
等于 true
.
Pinch zoom has an attribute e.ctrlKey = true
, and normal scroll event has e.ctrlKey = false
. But if you hold down ctrl
key and scroll a page, e.ctrlKey
equal true
.
我找不到更好的解決方案.:(
I couldn't find a better solution. :(
演示
document.addEventListener('mousewheel', function(e) {
if(e.ctrlKey) {
e.preventDefault();
}
});
這篇關于在 webkit(或電子)中禁用捏縮放的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!