1 . 在IOS设备的safari里,屏幕旋转是系统级别的,作为web app是控制不了的。这个据说是在Apple的技术文档上有明确的说明。在Android上,同样是控制不了屏幕翻转的。
2 . 设置监听。给window 添加 orientationchange 事件。在 safari 里,这个事件的回调是正常的。而在Android 一些默认的浏览器和一些第三方的浏览器上,在屏幕翻转的时候,这个事件是可以被回调的,但是有个问题,有同学分享说,获取到的屏幕方向是相反的,landspace 的时候给的是portrait , 而 portarait 给的是 landscape , 如果从打印的log来分析的话,好像是这么回事。但是我自己的理解是。正常的回调是浏览器先进行了屏幕翻转的算法,比如更新当前的屏幕方向,当前屏幕的宽高,等等。然后通知你,你再去做一些处理。但是在某些浏览器上,一旦屏幕发生翻转,先回调,再进行自己的运算。所以就会出现得到的总是相反的结果。这是我的个人理解。
3 . 屏幕翻转需要进行一些重新绘制,和重新计算的问题,如何给用户一个良好的用户体验,不管是在技术上,或者从产品设计上,都需要有丰富的经验的。
- EOF -
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自 Binkery 技术博客 [https://binkery.com]
本文标题: Javascript 监听屏幕翻转事件
本文地址: https://binkery.com/archives/328.html