2012-03-22 8 views
1

私はiOS、特にiPhoneの問題を抱えています。私のjQuery Mobile WebアプリケーションがjQuery Mobileのorientationchangeイベントの前にウィンドウのサイズ変更イベントを発生させています。私はこれが私のテストで、この時点で(それは後で跳ね上がるかもしれない)、Android上で発生するのを見ていない。オリエンテーション変更イベント後にサイズ変更イベントが発生することを保証する方法はありますか?恐らくwindow.orientationを利用していますか?orientationchangeイベント後にサイズ変更イベントの発生を保証する方法はありますか(jQuery Mobile、JavaScript)?

ありがとうございます。

答えて

1

良いニュースと悪いニュース。悪いニュースは、いいえ、それを保証することはできません。このバグは当初からありましたが、まだ完全に解決されていません。私は彼らがすぐにいつもいるとは思っていませんし、他のプラットフォームの競合他社がオーバーヘッドを減らして市場投入するために急いで彼らのものを正しく実装することも期待しません。

良いニュースは、おそらくJavaScriptイベントも必要ないということです。あなたがCSS Media Queriesを使ってやろうとしていることをすべて達成することができ、より確実に行うことができます。あなたはorientationchangeイベント

を待つためにタイムアウトを設定することができます

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

ワークスあなたの助けのためにありがとうございました。これはやや話題です。私はコンテンツが縦横両方のレイアウトビューポートの幅に等しいことを望んでいます。ページがロードされた後にデバイスが方向を変えることはもちろんですが、iPhone、すべてのバージョン(1.x、2 .x、4.x)とAndroidの携帯電話の解像度。ですから、CSS Media Queriesを使用してそれをどのように複製できますか?上のあなたの例は、この動的を許可しますか?ありがとうございました。 – user717236

+1

はい、そうです。水平とラベル付けされたセクションは、電話を掛ける瞬間に効果を発揮し、ルールはJavaScriptを実行しなくてもすぐに適用されます。実際、この方法はjavascriptがオフになっても機能します。これはレスポンシブウェブデザインと呼ばれるものの始まりです。 横のセクションラベルでは、電話をかけるときに有効にするCSSルールの上書きを入れるだけです。 – sgliser

+0

ありがとうございました。メディアのクエリの最小幅がデバイスの幅(Retina Display、960)またはビューポートの幅(Retina Display、480)を報告していますか?問題は、アンドロイド解像度のバージョンがすべて異なることです。異なるバージョンと解像度でのテストで、横幅(つまり、clientWidth)が一貫していません。たとえば、解像度が240x320,240x400、および240x432の野生のAndroid端末があります。私の他の考えは、特定の幅を照会することは、新しいデバイスと解像度がリリースされるとメンテナンスが必要な場合があるということです。どうもありがとうございます。 – user717236

0

ITは

$(window).bind('resize', function() { setTimeout(function() { messageToNativeApp('screen_resized'); }, 500); }); 
関連する問題