设置字体大小的投票最多的答案对我不起作用。使用javascript 来识别客户端以及此处答案中的元标记,我们可以防止 iPhone 在输入焦点上的缩放行为,同时保持缩放功能完好无损。
$(document).ready(function ()
{
if (/iPhone/.test(navigator.userAgent) && !window.MSStream)
{
$(document).on("focus", "input, textarea, select", function()
{
$('meta[name=viewport]').remove();
$('head').append('<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">');
});
$(document).on("blur", "input, textarea, select", function()
{
$('meta[name=viewport]').remove();
$('head').append('<meta name="viewport" content="width=device-width, initial-scale=1">');
});
}
});
似乎我们必须用模糊事件上的新值替换元标记,只是为了删除它似乎不会触发更新的行为。
请注意,UI 仍在初始化缩放,但它会很快再次缩小。我相信这是可以接受的,iPhone 用户一定已经习惯了浏览器在适用场景中无论如何都会进行一些动态缩放。