Javascript 获取方向更改后Android移动设备的实际宽度
使用Android HTML5和Javascript确实令人沮丧 这一次,我试图找出加载DOM和用户更改方向时的当前屏幕大小(宽度):Javascript 获取方向更改后Android移动设备的实际宽度,javascript,android,mobile,width,Javascript,Android,Mobile,Width,使用Android HTML5和Javascript确实令人沮丧 这一次,我试图找出加载DOM和用户更改方向时的当前屏幕大小(宽度): 屏幕宽度在不同的AndroidOS版本上工作完全不同。无法使用 jQuery的$(window).width()返回实际宽度,但在方向改变之前触发。我尝试了200毫秒的超时时间,但也不起作用 然后我尝试了这个片段: var deviceWidth = window.orientation == 0 ? window.screen.width : window
- 屏幕宽度在不同的AndroidOS版本上工作完全不同。无法使用
- jQuery的$(window).width()返回实际宽度,但在方向改变之前触发。我尝试了200毫秒的超时时间,但也不起作用
var deviceWidth = window.orientation == 0 ? window.screen.width : window.screen.height;
if (navigator.userAgent.indexOf('Android') >= 0 && window.devicePixelRatio) {
deviceWidth = deviceWidth / window.devicePixelRatio;
}
在一些安卓版本中,它会根据方向而改变,而在一些版本中则不会
有什么建议吗
谢谢
编辑/解决方案:
这就是我在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
此方法将获得设备的尺寸:
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();
}
在绑定函数中尝试它,超时如下
$(window).bind( 'orientationchange', function(e){
setTimeout(function() {
var device_width = $(window).width();
},500);
});
请在此处阅读更多信息:
为了
- 如何获取视口大小
- 如何获取设备大小
- 如何获取文档大小
另请阅读:谢谢,但我需要一个Javascript解决方案。谢谢!请看我在第一篇文章中的解决方案。