Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

820
Views
Deshabilitar pellizcar zoom en webkit (o electrón)

¿Hay alguna forma de deshabilitar el zoom de pellizco en una aplicación de electrones ?

No puedo hacer que funcione desde la vista web con los métodos normales de JavaScript como se describe aquí: https://stackoverflow.com/a/23510108/665261

Parece que el indicador --disable-pinch no es compatible con electron .

He experimentado con varios métodos usando:

  1. event.preventDefault() en javascript touchmove/mousemove eventos
  2. etiquetas meta viewport en HTML
  3. -webkit-text-size-adjust en CSS
  4. banderas/config para electrones

¿Hay algún método para webkit en general o para electrones en particular?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

ACTUALIZACIÓN 2:

Use webFrame.setZoomLevelLimits (v0.31.1+) en el proceso de renderizado ( Diferencias entre el proceso principal y el proceso de renderizado). Porque el zoom inteligente en Mac todavía funciona con document.addEventListener.

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


ACTUALIZAR:

La propiedad deltaY para pellizcar el zoom tiene un valor float , pero el evento de desplazamiento normal devuelve un valor int . Ahora la solución no tiene problema con la tecla ctrl.

demostración 2 .

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

Al usar Chromium monitorEvents(document) , descubrí que es responsable de este evento mousewheel . No sé, por qué mousewheel activó con el zoom de pellizco. Siguiente paso, encuentre la diferencia entre el desplazamiento normal y el zoom de pellizco.

Pinch zoom tiene un atributo e.ctrlKey = true , y el evento de desplazamiento normal tiene e.ctrlKey = false . Pero si mantiene presionada la tecla ctrl y se desplaza por una página, e.ctrlKey igual a true .

No pude encontrar una mejor solución. :(

Manifestación

 document.addEventListener('mousewheel', function(e) { if(e.ctrlKey) { e.preventDefault(); } });
over 4 years ago · Santiago Trujillo Report

0

Parece muy difícil para el navegador de escritorio evitar el zoom de pellizco.

¡Aquí hay algunas ideas!

1) Al usar algunos gestos javascript como hammer.js , detecte el evento Pinch e intente evitarlo usando e.preventDefault

O

2) Diseñe todo usando "%" en css, o use unidades más nuevas como "vm", etc. (si es posible). De esta manera, incluso la página se ampliará, pero el contenido permanecerá igual para cualquier nivel de zoom.

¡Mis mejores deseos!

over 4 years ago · Santiago Trujillo Report

0

Respuesta de GitHub :

"Si está buscando una forma de evitar el zoom del proceso principal , puede usar:"

 const webContents = mainWindow.webContents; webContents.on('did-finish-load', () => { webContents.setZoomFactor(1); webContents.setVisualZoomLevelLimits(1, 1); webContents.setLayoutZoomLevelLimits(0, 0); });

mainWindow es una variable donde tiene una new BrowserWindow , por ejemplo:

 const mainWindow = new BrowserWindow({ width: 440, height: 750, // ... }); const webContents = mainWindow.webContents; webContents.on("did-finish-load", () => { webContents.setZoomFactor(1); webContents.setVisualZoomLevelLimits(1, 1); webContents.setLayoutZoomLevelLimits(0, 0); });
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!