javascript - Förhindra nyp-/zooma i Safari för OSX


Jag har en HTML5-applikation med flera visningsportar. Jag avser att använda HammerJS för att tillhandahålla nyp-/zoomgest på individuella visningsportar. För närvarande, när jag nypper i Safari/OSX, zoomas hela fönstret in eller ut, och jag vill förhindra det. För iOS fungerar detta:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">

Men det förhindrar inte zoomning i OSX. Finns det någon annan meta, css3 eller javascript som fungerar i Safari/OSX?

Svar #1

Sedan Safari 10.1+ kan du ansluta till GestureEvent på macOS/OSX.

window.addEventListener('gesturestart', e => e.preventDefault());
window.addEventListener('gesturechange', e => e.preventDefault());
window.addEventListener('gestureend', e => e.preventDefault());

Ovanstående kommer att förhindra att någon gest aktiveras (t.ex. nyp för att zooma). Du kan också hantera dessa händelser genom att koppla in dig på skalnings- och rotationsvärden.