有没有办法保证在定向更改事件(jQuery Mobile,JavaScript)之后调整大小事件?

时间:2012-03-22 14:10:29

标签: iphone events jquery-mobile resize orientation

我遇到了iOS的问题,特别是iPhone,我的jQuery Mobile网络应用程序在jQuery Mobile的orientationchange事件之前触发了窗口调整大小事件。我在测试中没有看到这种情况发生在这一点上(意思是,它可能会在以后出现)。有没有办法可以保证resize事件在orientationchange事件之后触发,也许是利用window.orientation?

谢谢。

2 个答案:

答案 0 :(得分:1)

好消息和坏消息。坏消息是,不,你不能保证。这个错误从一开始就存在,但仍未完全解决。我不希望它们很快就会出现,我也不希望其他平台竞争对手能够正确地实施它们,因为它们急于以较低的开销进入市场。

好消息是,你可能甚至不需要javascript事件。很有可能你可以完成CSS媒体查询的所有工作,并且可以更可靠地完成它。

/* 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) {

}

答案 1 :(得分:0)

您可以设置超时以等待orientationchange事件

IT WORKS

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