私は、ユーザーが携帯電話を縦向きから横向きに回転させたときに、埋め込まれたWebページを変更する方法を理解しようとしています。基本的には、より広い画面形式により適したビューをロードします。これは、サーバーから新しいページを呼び出さずに実行できますか?つまり、CSS / Javascript自体からページを駆動できますか?
ありがとう!
私は、ユーザーが携帯電話を縦向きから横向きに回転させたときに、埋め込まれたWebページを変更する方法を理解しようとしています。基本的には、より広い画面形式により適したビューをロードします。これは、サーバーから新しいページを呼び出さずに実行できますか?つまり、CSS / Javascript自体からページを駆動できますか?
ありがとう!
プロパティを使用できwindow.orientation
ます。その値は、現在の表示モードが使用される度合いです。簡単な例を次に示します。
function updateOrientation()
{
var orientation=window.orientation;
switch(orientation)
{
case 0:
break;
case 90:
break;
case -90:
break;
}
}
このイベントでこの関数を使用できます。
window.onorientationchange=updateOrientation;
お役に立てば幸いです。
onorientationchange
プロパティを直接設定しないことをお勧めします。代わりに、以下を使用してください。
window.addEventListener('orientationchange', function (evt) {
switch(window.orientation) {
case 0: // portrait
case 180: // portrait
case 90: // landscape
case -90: // landscape
}
}, false);
Safariモバイルブラウザは、orientationchange
イベントとorientation
ウィンドウのプロパティをサポートしているため、次のようなことができます。
window.onorientationchange = function() {
switch(window.orientation) {
case 0: // Portrait
case 180: // Upside-down Portrait
// Javascript to setup Portrait view
break;
case -90: // Landscape: turned 90 degrees counter-clockwise
case 90: // Landscape: turned 90 degrees clockwise
// Javascript to steup Landscape view
break;
}
}
iPadのヒューマンインターフェイスガイドラインではすべての向きをサポートする必要があると書かれているので、逆さまに追加します。そのため、iPad(および場合によっては将来のiPhoneバージョン)のSafariがそれをサポートすることを期待します。
私は誰もcssの裁定について話していなかったとは信じられません:
@media screen and (max-width: 320px) // Portait Mode
{
/* CSS RULINGS */
p{}
body{}
}
@media screen and (min-width: 321px) // Landscape Mode
{
/* CSS RULINGS */
p{}
body{}
}
SafariMobileはオリエンテーションイベントをサポートしています。
<body onorientationchange="updateOrientation();">