【问题标题】:iOS Safari - disable pinch to zoom optioniOS Safari - 禁用捏缩放选项
【发布时间】:2018-02-03 09:05:00
【问题描述】:

我遇到了缩放问题。我想阻止捏合以放大 HTML 元素上的 Mobile Safari。我使用脚本来防止浏览器的默认行为,它在正常捏合时工作正常,但是当我用一根手指开始滚动并稍后添加第二个并捏合时,Safari 仍在缩放页面......

有人知道如何阻止这种缩放吗?

我正在使用画布创建手机游戏,并将 HTML 用于消息窗口,所以请不要写到出于可访问性原因阻止缩放是一个坏主意。

防止缩放的代码:

document.addEventListener("touchmove", function(event) {
  event = event.originalEvent || event;

  if(event.touches.length > 1 || event.scale > 1) {
    event.preventDefault();
  }
}, false);

更新:

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

此元标记不起作用,因为 Apple 从 iOS 10 开始在 Mobile Safari 中禁用它,直到可访问性原因

【问题讨论】:

  • 你的元视口命令中有user-scalable=no之类的东西吗?
  • Apple 出于可访问性原因在 iOS 10 中禁用 user-scalable=no
  • 我不知道。对不起。但感谢您提及这一点。
  • @PawełGawlas “可访问性原因”也是减少 HTML5 网页应用程序以提供“本机应用程序”感觉的好借口,请记住,如果您可以将应用程序作为网页发布,Apply 不会赚钱,而不是 AppStore-Item。

标签: javascript ios mobile-safari dom-events


【解决方案1】:

你能测试一下吗?

document.documentElement.addEventListener('touchmove', function (event) {
    event.preventDefault();
}, false);

【讨论】:

  • 你能测试一下吗? document.documentElement.addEventListener('touchmove', function (event) { event.preventDefault(); }, false);
  • 这段代码可以工作,但也完全阻止滚动,在我的消息窗口中,有时我有可滚动的内容,所以这个解决方案对我不利
猜你喜欢
  • 2020-02-19
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
  • 2011-12-25
  • 2013-05-05
相关资源
最近更新 更多