在 webkit(或电子)中禁用捏缩放

Disable pinch zoom in webkit (or electron)(在 webkit(或电子)中禁用捏缩放)
本文介绍了在 webkit(或电子)中禁用捏缩放的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法在 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 标志是 电子不支持.

我尝试了各种方法:

  1. event.preventDefault() on javascript touchmove/mousemove 事件
  2. meta viewport HTML 中的标签
  3. -webkit-text-size-adjust 在 CSS 中
  4. 电子的标志/配置
  1. event.preventDefault() on javascript touchmove/mousemove events
  2. meta viewport tags in HTML
  3. -webkit-text-size-adjust in CSS
  4. 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(或电子)中禁用捏缩放的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)