Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.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
Webkit iPhone应用程序:如何动态更改视口中的用户缩放(或缩放、图片和缩放)?_Iphone_Safari_Webkit_Scale_Viewport - Fatal编程技术网

Webkit iPhone应用程序:如何动态更改视口中的用户缩放(或缩放、图片和缩放)?

Webkit iPhone应用程序:如何动态更改视口中的用户缩放(或缩放、图片和缩放)?,iphone,safari,webkit,scale,viewport,Iphone,Safari,Webkit,Scale,Viewport,我将JQTouch用于iPhone应用程序。JQtouch默认情况下禁用收缩和缩放页面的功能。 对于一个页面(包含大图像),我需要启用收缩和缩放功能。 这很简单: var viewport = $("head meta[name=viewport]"); viewport.attr('content', 'width=320, initial-scale=1, maximum-scale=10.0, minimum-scale=1, user-scalable=1'); 但是,在用户玩了捏缩和

我将JQTouch用于iPhone应用程序。JQtouch默认情况下禁用收缩和缩放页面的功能。 对于一个页面(包含大图像),我需要启用收缩和缩放功能。 这很简单:

var viewport = $("head meta[name=viewport]");
viewport.attr('content', 'width=320, initial-scale=1, maximum-scale=10.0, minimum-scale=1, user-scalable=1');
但是,在用户玩了捏缩和缩放后,我需要动态地将缩放(比例)重置为默认值。我尝试重置视口:

viewport.attr('content', 'width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;');
调用上述代码后,无法再缩放(因为用户可缩放=0;),但不会将当前比例更改为默认比例

我正在寻找像setScale(1)这样的东西,或者更改像current scale=1这样的属性


有什么想法吗?

重置用户缩放的唯一方法是重新加载页面:

window.location.reload();
如果不想这样做,则需要添加一个脚本来动态缩放元素,例如带有触摸事件的图像。下面是一个带滚动的收缩和缩放示例:


将此代码集成到项目中很容易。只需打开HTML源代码,复制Javascript,并根据您的需要更改init()函数。

我在这里找到了一个聪明的解决方案:需要更深入地测试它……不幸的是,一旦用户手动收缩和缩放,上面的链接就不再起作用了。。。也许我想做的事情还有另一个解决方案。基本上,我想显示一个图像,让用户放大/缩小并在缩放时滚动。我尝试了一些与iScroll,但我没有设法得到水平和垂直滚动,而缩放。。。有人有主意吗?在我的情况下,重新加载并不能重置缩放。我是否需要在脚本中添加一些东西,例如,使其由于重新加载而重置?否,此代码窗口。location.reload();应使用默认比例重新加载网页(如第一次加载)注意:重新加载不会重置mobile safari的窗口比例:(在我的例子中,我没有视口标记,我不想添加一个,因为我想要在没有视口标记时得到的所有行为(浏览器将该站点视为“遗留”站点)……因此没有“初始缩放”,我假设这就是为什么重新加载was不会为我重置缩放的原因——但我希望这样做。