Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

819
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda