【发布时间】:2014-07-27 12:07:25
【问题描述】:
使用 Android HTML5 和 Javascript 真的很令人沮丧。
这一次,我尝试找出加载 DOM 和用户改变方向时的当前屏幕尺寸(宽度):
- screen.width 在不同的 AndroidOS 版本上的工作方式完全不同。无法使用。
- jQuery 的 $(window).width() 返回实际宽度,但它会在方向改变之前触发。我尝试了超时 200 毫秒,也不起作用。
然后我尝试了这个sn-p:
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
【问题讨论】:
标签: javascript android mobile width