docs.rodeo

MDN Web Docs mirror

ScreenOrientation: lock() method

{{APIRef("Screen Orientation")}} 

The lock() method of the {{domxref("ScreenOrientation")}}  interface locks the orientation of the containing document to the specified orientation.

Typically orientation locking is only enabled on mobile devices, and when the browser context is full screen. If locking is supported, then it must work for all the parameter values listed below.

Syntax

lock(orientation)

Parameters

Return value

A {{jsxref("Promise")}}  that resolves after locking succeeds.

Exceptions

The promise may be rejected with the following exceptions:

Examples

This example shows how to lock the screen to the opposite orientation of the current one. Note that this example will only work on mobile devices and other devices that support orientation changes.

<div id="example_container">
  <button id="fullscreen_button">Fullscreen</button>
  <button id="lock_button">Lock</button>
  <button id="unlock_button">Unlock</button>
  <textarea id="log" rows="7" cols="85"></textarea>
</div>
const log = document.getElementById("log");

// Lock button: Lock the screen to the other orientation (rotated by 90 degrees)
const rotate_btn = document.querySelector("#lock_button");
rotate_btn.addEventListener("click", () => {
  log.textContent += `Lock pressed \n`;

  const oppositeOrientation = screen.orientation.type.startsWith("portrait")
    ? "landscape"
    : "portrait";
  screen.orientation
    .lock(oppositeOrientation)
    .then(() => {
      log.textContent = `Locked to ${oppositeOrientation}\n`;
    })
    .catch((error) => {
      log.textContent += `${error}\n`;
    });
});

// Unlock button: Unlock the screen orientation (if locked)
const unlock_btn = document.querySelector("#unlock_button");
unlock_btn.addEventListener("click", () => {
  log.textContent += "Unlock pressed \n";
  screen.orientation.unlock();
});

// Full screen button: Set the example to fullscreen.
const fullscreen_btn = document.querySelector("#fullscreen_button");
fullscreen_btn.addEventListener("click", () => {
  log.textContent += "Fullscreen pressed \n";
  const container = document.querySelector("#example_container");
  container.requestFullscreen().catch((error) => {
    log.textContent += `${error}\n`;
  });
});

To test the example, first press the Fullscreen button. Once the example is full screen, press the Lock button to switch the orientation, and Unlock to return to the natural orientation.

{{EmbedLiveSample('Examples')}} 

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

In this article

View on MDN