Есть ли способ гарантировать изменение размера событий при ПОСЛЕ события изменения ориентации (jQuery Mobile, JavaScript)? - PullRequest
1 голос
/ 22 марта 2012

У меня проблема с iOS, в частности с iPhone, где мое веб-приложение jQuery Mobile запускает событие изменения размера окна ДО события jQuery Mobile, посвященного смене ориентации. Я не видел, чтобы это происходило на Android в моем тестировании, на данный момент (то есть, это может произойти позже). Есть ли способ, которым я могу гарантировать, что событие изменения размера срабатывает ПОСЛЕ события directionchange, возможно, используя window.orientation?

Спасибо.

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Хорошие новости и плохие новости. Плохая новость - нет, вы не можете это гарантировать. Эти ошибки были вокруг с самого начала и до сих пор не полностью проработаны. Я не ожидал бы, что они появятся в ближайшее время, и я не буду ожидать, что другие конкуренты платформы будут правильно реализовывать их, поскольку они стремятся выйти на рынок с уменьшенными накладными расходами.

Хорошая новость в том, что вам, вероятно, даже не нужны события javascript. Существует довольно хороший шанс, что вы сможете выполнить все, что вам нужно, с помощью CSS Media Queries и сделать это более надежно.

/* Regular mobile styles */
.logo-large{
    background-image:url(../images/logo.png);
    background-repeat:no-repeat;
    background-position:0 0;
    position:relative;
    top:0;
    left:0;
    width:290px;
    height:65px; 
    margin:0 auto; 
    border:none;
}



/* Horizontal */
@media all and (min-width: 480px){
    /* put your horizontal stylings here */
}

/* HD / Retina */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
       only screen and (min--moz-device-pixel-ratio: 1.5),
       only screen and (min-resolution: 240dpi) {
    .logo-large{
        background-image:url(../images/logoHD.png);background-size:290px 65px;
    }
}


/* iPad */
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {

}
0 голосов
/ 19 июня 2012

Вы можете установить тайм-аут для ожидания события directionalchange

ЭТО РАБОТАЕТ

   $(window).bind('resize', function() { setTimeout( function() { messageToNativeApp('screen_resized'); }, 500); });
...