获得方向改变后Android移动设备的真实宽度
Get real width of Android mobile device after orientationchange
使用Android HTML5和Javascript真是令人沮丧。
这一次,我试图找出当前的屏幕大小(宽度)DOM加载时,当用户改变方向:
- 屏幕。width在不同android版本上的工作方式完全不同。无法使用。 jQuery的$(window).width()返回实际宽度,但它在方向改变之前触发。我尝试了200ms的超时,也不工作。
然后我尝试了这个片段:
var deviceWidth = window.orientation == 0 ? window.screen.width : window.screen.height;
if (navigator.userAgent.indexOf('Android') >= 0 && window.devicePixelRatio) {
deviceWidth = deviceWidth / window.devicePixelRatio;
}
在某些android版本中,它会根据方向改变,在某些版本中则不会。
有什么建议吗?
谢谢!
编辑/解决方案:
这就是我在Android和iOS上的工作方式:
$( window ).on( "orientationchange", function( event ) {
//console.log( "This device is in " + event.orientation + " mode!" );
var oc_timer;
clearTimeout(oc_timer);
oc_timer = setTimeout(function () {
//do your magic stuff with jQuery's $(window).width()
}, 500);
);
$( window ).orientationchange(); //fire it manually on page load
尝试在bind函数中使用timeout,如下所示
$(window).bind( 'orientationchange', function(e){
setTimeout(function() {
var device_width = $(window).width();
},500);
});
在这里阅读更多:JavaScript中的设备和视口大小
- 如何获取视口大小
- 如何获取设备尺寸
- 如何获取文档大小
另请参阅:http://www.w3schools.com/js/js_window_screen.asp
这个方法将获得您的设备的尺寸:
Point size = new Point();
Display display = getWindowManager().getDefaultDisplay();
int height = 0;
int width = 0;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB_MR2) {
display.getSize(size);
width = size.x;
height = size.y;
} else {
width = display.getWidth();
height = display.getHeight();
}
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- FabricJs-限制主对象内添加对象的移动区域
- 如何从画布上的某个移动事件中获取X和Y
- 触摸移动时切换到新元素
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 停止jQuery UI滑块移动超过给定值
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- JQuery移动动态分区页面
- 如何使用jquery将base64图像路径转换为真实路径
- XMLHttpRequest在移动设备上的chrome上不起作用
- 如何使bxslider仅在移动视图中处于活动状态
- css停止图像在滚动中移动
- jquery移动对齐按钮取决于内容大小
- 我可以从网站上读取“真实”的移动GPS坐标吗?
- 获得方向改变后Android移动设备的真实宽度
- 当进入全屏模式时,如何识别真实的鼠标移动