2012-01-24 13 views
2
document.addEventListener("orientationChanged", updateOrientation); 

updateOrientationの機能を呼び出そうとしていますが、機能が呼び出されていません。私は同じのJavaScriptコードを使用しています。Androidでオリエンテーションを変更する

orientationChangeで誰でも助けてもらうことができますが、JavaScriptコードを使用しています。

ありがとうございます。

+2

イベント名が 'orientationChange'の場合、なぜあなたのコードに' orientationChanged'がありますか? – lonesomeday

+1

実際には、イベント名のすべての文字は小文字である必要があります – Dan

+0

@Danそうではありません:camelCaseは人間がコードを読みやすくすることは常に許可されています –

答えて

1

それはそう簡単ではありません:私は、あまりにもそれを中心に多くのことを果たした:)

まず、あなたは、彼らが風景やその逆している間(例えば、サムスンのギャラクシータブのための)いくつかのAndroidデバイスがポートレートとして検出されることに気づいたかもしれません。ですから、ipadが検出されない場合、screen.widthとscreen.heightに基づいて方向を検出する関数を構築する必要があります(ipadは常に正しい向きを表示します)。

その後、新しい方向に応じて環境全体が変更されるように、時間切れで方向変更が検出された後にコールバック関数を起動する必要があります。だからここ

は..私はどのように行う、それを共有することが幸せです:)

function orientation_changed() 
{ 
    if (is_portrait()) 
    { 
     //do something 
    } 
    else if (is_landscape()) 
    { 
     // do something else 
    } 
    clearTimeout(window.t); 
    delete window.t; 
} 

window.t = undefined; 
window.onorientationchange = function (event) 
{ 
    window.t = setTimeout('orientation_changed();', 250); 
} 

function is_landscape() 
{ 
    var uagent = navigator.userAgent.toLowerCase(); 
    if (uagent.search('ipad') > -1) 
    { 
     var r = (window.orientation == 90 || window.orientation == -90); 
    } 
    else 
    { 
     var r = (screen.width > screen.height); 
    } 
    return r; 
} 

function is_portrait() 
{ 
    var uagent = navigator.userAgent.toLowerCase(); 
    if (uagent.search('ipad') > -1) 
    { 
     var r = (window.orientation == 0 || window.orientation == 180); 
    } 
    else 
    { 
     var r = (screen.width < screen.height); 
    } 
    return r; 
} 
+0

私はT-Mobile Galaxy SでAndroid 2.2を実行しています。 。 – Zorayr

+0

@Zorayr yes on Galaxy彼らは切り替わります。上記のスクリプトはそれを修正する必要があります(私はGalaxy Sタブでそれをテストしました)。もしあなたがまだ上記のスクリプトを使用して切り替えられたなら、もっと長い番号で250を変更してより長いタイムアウトを使うようにしてください。希望すると便利です –

+0

'onresive'イベントを使用している場合は、250ミリ秒待つことはありません。 – Dan

0

、ネイティブ "orientationchange" のサポートをテストし、フォールバックとして"orientationchange" in window

を使用し、onresizeイベントを使用してwindow.outerHeight > window.outerWidthを確認するには

+0

OPはすでにこれらのイベントについて知っています:彼/彼女はいくつかの作業スニペットを求めました。 –