Очень утомительно работать с Android HTML5 и Javascript.
На этот раз я пытаюсь выяснить, какой текущий размер экрана (ширина) при загрузке DOM И когда пользователь меняет ориентацию:
- screen.width работает совершенно по-разному в разных версиях 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 он меняется по ориентации, в некоторых нет.
Какие-либо предложения?
Спасибо!
Изменить/Решение:
Вот как это работало для меня на 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