在 OSX 的 Safari 中阻止 pinch/zoom
Prevent pinch/zoom in Safari for OSX
我有一个带有多个视口的 html5 应用程序。我打算使用 HammerJS 在各个视口上提供 pinch/zoom 手势。目前,每当我捏入 Safari/OSX 时,整个 window 都会放大或缩小,我想防止这种情况发生。对于 iOS 这有效:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
但它不会阻止放大 OSX。在 Safari/OSX 中是否有任何其他元数据,css3 或 javascript?
从 Safari 10.1+ 开始,您可以挂接到 macOS/OSX 上的 GestureEvent
。
window.addEventListener('gesturestart', e => e.preventDefault());
window.addEventListener('gesturechange', e => e.preventDefault());
window.addEventListener('gestureend', e => e.preventDefault());
以上将阻止触发任何手势(例如捏合缩放)。您还可以处理这些事件,挂接到比例和旋转值。
我有一个带有多个视口的 html5 应用程序。我打算使用 HammerJS 在各个视口上提供 pinch/zoom 手势。目前,每当我捏入 Safari/OSX 时,整个 window 都会放大或缩小,我想防止这种情况发生。对于 iOS 这有效:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
但它不会阻止放大 OSX。在 Safari/OSX 中是否有任何其他元数据,css3 或 javascript?
从 Safari 10.1+ 开始,您可以挂接到 macOS/OSX 上的 GestureEvent
。
window.addEventListener('gesturestart', e => e.preventDefault());
window.addEventListener('gesturechange', e => e.preventDefault());
window.addEventListener('gestureend', e => e.preventDefault());
以上将阻止触发任何手势(例如捏合缩放)。您还可以处理这些事件,挂接到比例和旋转值。