webapp开发中的屏幕旋转问题
2013-08-14 16:23
393 查看
目的:屏幕旋转时候控制dom对象的高度和宽度实现自适应屏幕
思路:
问题:
1、android手机调用$(window).width/height获取到的长度宽度为旋转之前的长度和宽度 不能直接使用(测试手机为小米手机 UC浏览器)
2、ipad iphone 调用$(window).width/height 获取到的是旋转后的长度宽度 可以直接使用
解决思路:
通过useragent判断设备
ipad iphone 直接使用获取的数据
android
手上没有多余的设备用来测试 android平板没有测试
表示当前遇到问题已经解决
欢迎探讨
_____________________分割线________________________
上述代码还有错误 不同android浏览器的屏幕事件处理机制不太一样
上边的代码在不同的android手机浏览器中返回的效果竟然不一样
小米自带浏览器 百度浏览器 结果一样 为旋转后屏幕尺寸 UC浏览器为旋转前尺寸
将50延迟调成2000后 测试的浏览器给出的结果相同(小米自带浏览器 百度浏览器 UC浏览器)
怀疑UC把屏幕旋转事件做了修改 (求验证)
思路:
addEventListener('load', function(){ window.onorientationchange = function(){ //$(window).width/height 获取内容宽度和长度 //$("#").width/height() 设置dom长度宽度 } });
问题:
1、android手机调用$(window).width/height获取到的长度宽度为旋转之前的长度和宽度 不能直接使用(测试手机为小米手机 UC浏览器)
2、ipad iphone 调用$(window).width/height 获取到的是旋转后的长度宽度 可以直接使用
解决思路:
通过useragent判断设备
ipad iphone 直接使用获取的数据
android
//获取屏幕实际像素 var screenWidth = screen.width; var screenHeight = screen.height; //获取旋转前的数据 var windowWidth = $(window).width(); var windowHeight = $(window).height(); //获取实际像素数和显示像素的比值 var dpi = screenWidth/windowWidth; //获取浏览器除内容之外占据的高度 var topHeight = screenHeight-windowHeight*dpi; //计算实际数据 windowWidth = screenHeight/dpi; windowHeight = (screenWidth-topHeight)/dpi;
手上没有多余的设备用来测试 android平板没有测试
表示当前遇到问题已经解决
欢迎探讨
_____________________分割线________________________
上述代码还有错误 不同android浏览器的屏幕事件处理机制不太一样
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"> <title></title> </head> <body> </body> <script type="text/javascript"> addEventListener('load', function(){ window.onorientationchange = function(){ return setTimeout("orientationchange()",50); } }); function orientationchange(){ alert(screen.width+"---"+screen.height); } </script> </html>
上边的代码在不同的android手机浏览器中返回的效果竟然不一样
小米自带浏览器 百度浏览器 结果一样 为旋转后屏幕尺寸 UC浏览器为旋转前尺寸
将50延迟调成2000后 测试的浏览器给出的结果相同(小米自带浏览器 百度浏览器 UC浏览器)
怀疑UC把屏幕旋转事件做了修改 (求验证)
相关文章推荐
- webapp开发绝对定位引发的问题
- iOS开发中屏幕旋转至一个方向后再手动设置屏幕旋转至该方向无效问题
- Orientation Auto Rotation旋转屏幕crash问题(Unity3D开发之十四)
- Android webview旋转屏幕导致页面重新加载问题解决办法
- Hybrid app开发获取webview屏幕宽度
- IOS APP开发UI上得尺寸注意问题(屏幕、适配、分辨率)
- webapp开发时问题的总结1
- IOS APP开发UI上的尺寸注意问题(屏幕、适配、分辨率)
- Orientation Auto Rotation旋转屏幕crash问题(Unity3D开发之十四)
- iOS开发中带导航控制器的屏幕旋转问题
- android 开发屏幕旋转问题
- iOS 开发,屏幕旋转、旋转屏幕collectionView cell 的自动布局问题
- webapp开发问题记录
- 总结iOS App开发中控制屏幕旋转的几种方式
- webAPP开发的问题(总结)
- webapp开发webview缓存问题
- web app开发中 iPhone、iPad默认按钮样式问题
- 总结iOS App开发中控制屏幕旋转的几种方式
- webapp开发--手机屏幕分辨率同内置浏览器分辨率
- 总结iOS App开发中控制屏幕旋转的几种方式