Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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 缩放时在iOS上更改页面大小_Javascript_Html_Ios_Resize - Fatal编程技术网

Javascript 缩放时在iOS上更改页面大小

Javascript 缩放时在iOS上更改页面大小,javascript,html,ios,resize,Javascript,Html,Ios,Resize,我在iOS(Safari和Chrome for iOS)上遇到了一些问题。当用户缩放页面时,页面似乎在改变大小(它还触发了几十次ResizeJavaScript事件),这会弄乱我使用javascript定位的一些内容。我无法通过绑定resize事件来解决这个问题,因为它被调用的次数太多了,我无法知道哪一个是最后一个 我尝试过在视口上设置许多选项,但运气不佳(宽度、初始比例、最大比例、最小比例) 我有一个固定位置的div,具有固定的顶部、右侧、左侧和顶部。它里面有几个绝对div,它们的大小和位置以

我在iOS(Safari和Chrome for iOS)上遇到了一些问题。当用户缩放页面时,页面似乎在改变大小(它还触发了几十次ResizeJavaScript事件),这会弄乱我使用javascript定位的一些内容。我无法通过绑定resize事件来解决这个问题,因为它被调用的次数太多了,我无法知道哪一个是最后一个

我尝试过在视口上设置许多选项,但运气不佳(宽度、初始比例、最大比例、最小比例)

我有一个固定位置的div,具有固定的顶部、右侧、左侧和顶部。它里面有几个绝对div,它们的大小和位置以%设置


看起来页面实际上在改变大小,因为当我放大后缩小时,我会看到屏幕右侧和底部的空白边框。我想防止这种情况发生。

我发现了问题所在。页面本身没有调整大小,固定位置的元素正在调整。结果表明,如果用户放大,固定位置将跟随用户的视图。我找到的唯一解决办法是将我所有的固定定位改为绝对定位(在我的情况下,这将是一种痛苦)


我还发现,由于调整大小事件绑定到窗口,视图在缩放时会发生变化,因此会触发调整大小功能。其他元素上的调整大小事件(在我的例子中,我实际需要的是看到主体上的调整大小)。

我不知道这种性质的问题,即使在iOS Safari/Chrome的早期版本上也是如此。你使用的是什么iOS版本?如果您可以访问OSX,您是否在iOS模拟器上提供的所有iOS版本上测试过Safari?你在iPad上也有同样的行为吗?您在小视口上测试过其他浏览器吗?您提到了一些关于调整事件大小的问题,这些问题被调用的次数太多了

我会尝试获得一个简单的HTML页面,样式简单,无需使用javascript即可使用以下代码:

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

上面的代码应该使缩放不可能。。。如果这在一个简单的设置上不起作用,那么在您测试的iOS版本上肯定有一个我不熟悉的bug


另一方面,如果这样做有效,那么代码上的viewport标记将被某些内容覆盖。

您有什么代码可以查看吗?@Jean-Paul代码太大,我无法在此发布。我可以试着复制它,但我没有地方可以托管它(js fiddle在iPad上不起作用)。但我怀疑我能否复制它。我希望以前有人遇到过这个问题,我相信这可能是一些随机的CSS规则造成的。我确实在使用twitter引导。你可以在Dropbox上免费托管HTML页面,只需将index.HTML和相关的Javascript/CSS放在公用文件夹中,然后右键单击即可获得公用URL。你想要的行为到底是什么?是否允许调整大小并使其一致工作?根本不允许调整大小?此外,您是否检查过标记是否有错误(没有未关闭的标记等)?@PaoloStefan理想的行为是在缩放页面时不调整页面大小。标记是正确的,我使用的是thymeleaf,它不能处理无效的标记。如果我忘了在viewport元标记的末尾添加/的话,它会抛出一条大错误消息和堆栈跟踪。我很高兴你找到了解决方案!然而,我必须说,你使任何人都很难帮助,没有张贴任何代码。。。下次再发一些代码让我们细细琢磨。;)是的,很抱歉,只是代码太大了,我不知道出了什么问题,我认为它与一些随机的CSS规则有关,而不是固定的定位本身。我的CSS太大了,无法放在这里(如果没有附带的javascript,其中一些就没有意义了)。我已经发现了问题,你可以检查我的答案。它与视口无关。我不想禁用缩放,我希望固定位置的元素不受缩放的影响。然而,这似乎是不可能的。