MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Screen.lockOrientation()

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

lockOrientation メソッドは、指定した向きにスクリーンをロックします。

注記: このメソッドはインストールしたウェブアプリまたはフルスクリーンモードのウェブページでのみ動作します。

構文

lockedAllowed = window.screen.lockOrientation(orientation);

パラメーター

orientation
スクリーンをロックする向きです。文字列または文字列の配列で指定します。複数の文字列を渡したときは、選択した向きでのみ回転できるようになります。

以下の文字列表現が向きとして指定できます。

portrait-primary
メインのポートレートモードであるスクリーンの向きを表します。メインのポートレートモードとは、デバイスを通常の向きが縦向きの場合と、デバイスの通常の位置が横向きの場合に時計回りに 90° 回転させた向きの場合です。どの向きが通常の向きであるかは、デバイスによって異なります。
portrait-secondary
2番目のポートレートモードであるスクリーンの向きを表します。2番目のポートレートモードとは、デバイスを通常の向きが縦向きでそこから 180° 回転させた場合と、デバイスの通常の位置が横向きの場合に反時計回りに 90° 回転させた向きの場合です。どの向きが通常の向きであるかは、デバイスによって異なります。
landscape-primary
メインのランドスケープモードであるスクリーンの向きを表します。メインのランドスケープモードとは、デバイスを通常の向きが横向きの場合と、デバイスの通常の位置が縦向きの場合に時計回りに 90° 回転させた向きの場合です。どの向きが通常の向きであるかは、デバイスによって異なります。
landscape-secondary
2番目のランドスケープモードであるスクリーンの向きを表します。2番目のランドスケープモードとは、デバイスを通常の向きが横向きでそこから 180° 回転させた場合と、デバイスの通常の位置が縦向きの場合に反時計回りに 90° 回転させた向きの場合です。どの向きが通常の向きであるかは、デバイスによって異なります。
portrait
portrait-primary と portrait-secondary の両方を表します。
landscape
landscape-primarylandscape-secondary の両方を表します。
default
デバイスに自然な向きによって portrait-primary または landscape-primary が選ばれます。たとえば、ディスプレイの解像度が 1280*800 なら、default は landscape になるでしょうし、800*1280 なら、default は portrait になるでしょう。

注記: 複数のロックが同時に指定されることがあります。そのため、1つの向きにのみロックがセットされた場合には、スクリーンの向きはロックが解除されるまで決して変更されません。もしそうでなければ、デバイスがロックされた向きを含む複数の向きの間で、スクリーンの向きが1つの向きから別の向きへと移り変わってしまうことになります。

返り値

向きの固定が許可された場合には true が返り、向きのロックが拒否された場合には false が返ります。返り値は、必ずしもスクリーンの向きが実際にロックされていることを示すわけではないことに注意してください。遅延がある可能性があるからです。

DOMString 引数の使用例

screen.lockOrientationUniversal = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation;

if (screen.lockOrientationUniversal("landscape-primary")) {
  // 向きがロックされた
} else {
  // 向きのロックに失敗した
}

Array 引数の使用例

screen.lockOrientationUniversal = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation;

if (screen.lockOrientationUniversal(["landscape-primary", "landscape-secondary"])) {
  // 向きがロックされた
} else {
  // 向きのロックに失敗した
}

仕様

仕様 ステータス コメント
Screen Orientation API
Screen Orientation の定義
草案 Initial definition

ブラウザー間の互換性

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 38[1] (有) moz[2] 11 ms[3] 未サポート 未サポート
Array 引数 未サポート 18.0 (18.0) 11 ms 未サポート 未サポート
default 未サポート 未サポート 未サポート 未サポート 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 38[1] (有) moz[2] 未サポート 未サポート 未サポート
Array 引数 未サポート 未サポート 18.0 (18.0) 未サポート 未サポート 未サポート
default 未サポート 未サポート 26.0 (26.0) 未サポート 未サポート 未サポート

[1] 新しい標準の構文 (screen.orientation.lock) を採用し Promise を返す同様のメソッドが実装されていますが、デスクトップ版には存在しないため、常に失敗します。

[2] この API は、Firefox OS および Firefox for Androidで、プリフィックスメソッド (screen.mozLockOrientation) としてのみ実装されています。また、バグ 966480 のため、Firefox for Android では動作しません。

[3] このメソッドは、Internet Explorer for Windows 8.1 および Windows RT 8.1では、プリフィックス (screen.msLockOrientation) を使用して実装されていますが、Windows 7 ではサポートされていません。

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: shuuji3
 最終更新者: shuuji3,