【发布时间】:2011-10-27 16:26:47
【问题描述】:
我有一个流畅的 CSS 布局,当我改变方向时,它在 iphone 上的渲染很糟糕。 (刷新后看起来还不错)。
我正在使用下面的代码在方向更改时刷新页面,效果很好 - 这样做感觉有点不对劲。有什么方法可以实现这一点而不必重新加载整个页面?这是一个移动网站,我真的不想强迫用户加载页面两次。
var supportsOrientationChange = "onorientationchange" in window,
orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";
window.addEventListener(orientationEvent, function() {
window.location.reload()
}, false);
编辑:
在 iphone 上测试时的两个主要问题是:
我有一个 100% 宽度,右对齐的背景图像。 当我将方向从纵向更改为横向时,身体宽度保持在纵向模式下的呈现方式,反之亦然。从横向到纵向更成问题,因为页面太宽,而且似乎会渲染两次图像。
【问题讨论】:
-
你已经在使用 CSS 媒体查询了吗?
-
@Pointy 不,没有媒体查询。页面布局是相同的水平或垂直(相同的 CSS)。我已经更新了我的答案,以便更好地解释。
-
您是否只为 iPhone 制作页面? ipad、android、WM7等呢?如果使用不同宽度/大小的浏览器导致您的页面显示不佳,您需要查看布局。
-
@Ryan Ternier 是的,所有手机。如果在方向更改后刷新页面,则布局显示正常,因此这不是布局问题,问题在于手机在方向转换后呈现页面时。
-
@theorise 有一个示例页面,所以我可以测试你描述的内容?
标签: javascript iphone mobile orientation