Javascript 监听屏幕翻转事件

November 28, 2013

1 . 在IOS设备的safari里,屏幕旋转是系统级别的,作为web app是控制不了的。这个据说是在Apple的技术文档上有明确的说明。在Android上,同样是控制不了屏幕翻转的。

2 . 设置监听。给window 添加 orientationchange 事件。在 safari 里,这个事件的回调是正常的。而在Android 一些默认的浏览器和一些第三方的浏览器上,在屏幕翻转的时候,这个事件是可以被回调的,但是有个问题,有同学分享说,获取到的屏幕方向是相反的,landspace 的时候给的是portrait , 而 portarait 给的是 landscape , 如果从打印的log来分析的话,好像是这么回事。但是我自己的理解是。正常的回调是浏览器先进行了屏幕翻转的算法,比如更新当前的屏幕方向,当前屏幕的宽高,等等。然后通知你,你再去做一些处理。但是在某些浏览器上,一旦屏幕发生翻转,先回调,再进行自己的运算。所以就会出现得到的总是相反的结果。这是我的个人理解。

3 . 屏幕翻转需要进行一些重新绘制,和重新计算的问题,如何给用户一个良好的用户体验,不管是在技术上,或者从产品设计上,都需要有丰富的经验的。

--- EOF ---

添加新评论