Jeremy Keith ( @adactio ) 在他的博客Orientation and scale上有一个很好的解决方案
通过不在标记中设置最大比例来保持标记的可扩展性。
<meta name="viewport" content="width=device-width, initial-scale=1">
然后在加载时使用 javascript 禁用可扩展性,直到使用此脚本再次允许可扩展性时手势启动:
if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) {
var viewportmeta = document.querySelector('meta[name="viewport"]');
if (viewportmeta) {
viewportmeta.content = 'width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0';
document.body.addEventListener('gesturestart', function () {
viewportmeta.content = 'width=device-width, minimum-scale=0.25, maximum-scale=1.6';
}, false);
}
}
2014 年 12 月 22 日更新:在 iPad 1 上这不起作用,它在事件监听器上失败。我发现删除.body
修复了:
document.addEventListener('gesturestart', function() { /* */ });