5

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

我尝试在视口上设置许多选项,但没有成功(宽度、初始比例、最大比例、最小比例)。

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

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

4

2 回答 2

2

我发现了问题。页面本身没有调整大小,固定定位的元素是。事实证明,如果用户放大,固定定位会跟随用户的视图。我发现的唯一解决方案是将我所有的固定定位更改为绝对定位(在我的情况下这会很痛苦)。

我还发现,由于调整大小事件绑定到窗口,因此视图在缩放时确实会发生变化,因此会触发调整大小功能。调整大小事件不适用于其他元素(在我的情况下,我真正需要的是查看主体上的调整大小)。

于 2013-08-19T19:31:46.950 回答
0

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

我会尝试使用简单的样式和没有 javascript 的简单 HTML 页面来使用以下代码:

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

上面的代码应该使缩放变得不可能......如果在简单的设置上不起作用,那么在您正在测试的 iOS 版本上肯定存在我不熟悉的错误。

另一方面,如果这样可行,那么代码上的视口标签就会被覆盖。

于 2013-08-19T19:37:40.020 回答