Disable pinch zoom in webkit (or electron)

后端 未结 9 2190
北荒
北荒 2020-12-29 02:23

Is there any way to disable pinch zoom in an electron app?

I can\'t get it to work from inside the web-view with normal javascript methods as described here: https:/

9条回答
  •  时光说笑
    2020-12-29 02:42

    UPDATE 2:

    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.

    Example require('electron').webFrame.setZoomLevelLimits(1, 1)


    UPDATE:

    deltaY property for pinch zoom has float value, but normal scroll event return int value. Now solution has no problem with ctrl key.

    Demo 2.

    document.addEventListener('mousewheel', function(e) {
      if(e.deltaY % 1 !== 0) {
        e.preventDefault();
      }
    });
    

    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.

    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. :(

    Demo

    document.addEventListener('mousewheel', function(e) {
      if(e.ctrlKey) {
        e.preventDefault();
      }
    });
    

提交回复
热议问题