自动放大到表格后如何触发iPhone缩小?

bbo*_*ien 28 javascript iphone jquery javascript-events

我有一个使用jQuery提交搜索的Web表单.表单本身不会触发提交事件,因为我抓住并删除它(这是一个更大,更复杂的表单的所有部分,我正在使用渐进增强来添加此功能).

在iPhone上,浏览器一旦聚焦,就会自动放大我的搜索输入.在"输入"键盘事件中,搜索是通过javascript执行的,我模糊了输入,它消除了屏幕上的iPhone键盘,但浏览器仍然放大到输入区域.

有没有办法通过javascript以编程方式再次缩小回到初始视口区域?

编辑:搜索执行没有重定向,这通常会在新页面加载时重置视口 - 所有内容都发生在这里的一个页面上.

whi*_*ler 28

如果输入的font-size最小为16px,则不会触发放大.

  • 这感觉比从这个纸袋中使用 Javascript 方法要好得多。 (2认同)

Sha*_*ons 9

我成功地使用了以下内容.

$('input, select, textarea').on('focus blur', function(event) {
    $('meta[name=viewport]').attr('content', 'width=device-width,initial-scale=1,maximum-scale=' + (event.type == 'blur' ? 10 : 1));
  });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<head>
  <meta name="viewport" content="width=device-width,initial-scale=1" />
</head>

<body>
  <input id="input" type="text" placeholder="Type here..." />
</body>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.我们甚至不得不这样做感觉很糟糕...为什么用户想要在填写输入后保持放大?! (7认同)

Mic*_*umo 6

您是否需要或希望允许人们进行缩放?如果没有,你有这个元标记在脑海中吗?

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
Run Code Online (Sandbox Code Playgroud)

据我所知,这将在第一个实例中停止缩放问题.

  • 如果您关心可访问性,这是一个非常糟糕的主意. (4认同)
  • 我不同意。作为用户,我不想受到最大比例级别的限制,我需要缩放以获得更好的文本易读性。此meta完全禁用了该功能。这个主题已经在互联网上讨论了1000次,并且普遍的共识是不禁用缩放。苹果也已在iOS10中禁用了此元标记-https://medium.com/@johan_ronsse/re-apple-disabling-maximum-scale-behavior-on-sensitive-websites-in-ios10-17bc7b0f27c0 (2认同)
  • 是的,99% 的时候人们应该能够缩放,但想象一下您有一个具有复杂手势的网页游戏。我可以想象这是令人沮丧的,或者需要冗长的 JavaScript 来解决它。这对任何人都没有好处。无论如何,如果苹果删除它而只是想添加我的理由来解释为什么它可能并不总是“坏”,那是毫无意义的。 (2认同)