Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript web应用程序,控制iPhone在输入焦点和模糊上的缩放_Javascript_Zooming_Iphone_Iphone Web App - Fatal编程技术网

Javascript web应用程序,控制iPhone在输入焦点和模糊上的缩放

Javascript web应用程序,控制iPhone在输入焦点和模糊上的缩放,javascript,zooming,iphone,iphone-web-app,Javascript,Zooming,Iphone,Iphone Web App,几年前,我创建了一个web应用程序(在LAMP后端上使用JS/CSS/HTML),一直运行良好。客户现在在他的iPhone上使用它,并报告说,当登录屏幕上有两个输入时,窗口放大“太多”,当他输入完输入后,它不会放大到“正常”的放大级别(从他发送的屏幕抓图来看,它看起来会缩小到“正常”和输入时使用的放大级别之间) 有可能控制这两种行为吗?我读过关于用户可伸缩元的文章:0,但听起来要么A)根本不起作用,要么B)完全阻止缩放 我认为第二个问题更为关键(在用户输入文本后,它应该缩放回“正常”比例) 我要

几年前,我创建了一个web应用程序(在LAMP后端上使用JS/CSS/HTML),一直运行良好。客户现在在他的iPhone上使用它,并报告说,当登录屏幕上有两个输入时,窗口放大“太多”,当他输入完输入后,它不会放大到“正常”的放大级别(从他发送的屏幕抓图来看,它看起来会缩小到“正常”和输入时使用的放大级别之间)

有可能控制这两种行为吗?我读过关于用户可伸缩元的文章:0,但听起来要么A)根本不起作用,要么B)完全阻止缩放

我认为第二个问题更为关键(在用户输入文本后,它应该缩放回“正常”比例)

我要再次提到的是,这是一个通用的web应用程序,而不是“iPhone应用程序”(它是基于传统的web技术构建的,不是Cocoa或Objective-C)。我甚至没有iPhone或Mac电脑可以在上面使用模拟器,我看到的windows模拟器似乎只不过是图形中的iFrame


谢谢

如果您离开用户缩放选项,则由用户返回网站原始缩放比例。每次打开键盘或组合框时,处于纵向模式的Iphone safary浏览器都会进行放大。然后它不会缩放回原始比例(必须通过双击屏幕或挤压屏幕来完成…)

另一个选项是不允许用户使用视口元标记缩放

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

当键盘打开或微调器打开时,iphone不会缩放


我目前正在寻找一种解决方法(合并缩放的可能性,避免键盘打开时缩放),但我没有找到任何方法来做到这一点

我用viewport解决了这个问题:正如您所说,当没有启用用户缩放时,打开键盘或组合不会进行缩放,但随后您会为用户取消缩放功能

我在选择组合时禁用视口缩放,然后在一秒钟后恢复缩放选项:

document.documentElement.addEventListener("touchstart", function (event) {
          if((event.target.nodeName == "SELECT") || (event.target.nodeName == "INPUT") || (event.target.nodeName == "TEXTAREA")) { //it is a combo
                document.getElementById("view").setAttribute('content', 'width=device-width, user-scalable=no');
                setTimeout(function () {
                    document.getElementById("view").setAttribute('content', 'width=device-width, user-scalable=yes');
                }, 1000);
            }
            }, true);
并不是说我的视口将“视图”作为id


是的,我知道这不是最好的解决方案,但它很管用…

首先,如果这不是一个要求,我建议你让你的客户前置一部iPhone进行测试,但如果是我,我会让他先买一部iPhone,以确保你花时间使你的应用程序与iPhone兼容,从而得到补偿。