Yevhen Klymentiev
dark
light
console
darkness
y.klymentiev@gmail.com
Reusable Snippets|Practical utility code for everyday use — custom-built and ready to share

enterFullscreen

Requests fullscreen mode for a given element.

TypeScript
Copied!
1/**
2 * Requests fullscreen mode for a given element.
3 *
4 * @param element - The DOM element to enter fullscreen. Defaults to document.documentElement.
5 */
6export function enterFullscreen(element: HTMLElement = document.documentElement): void {
7  const request = element.requestFullscreen
8    || (element as any).webkitRequestFullscreen
9    || (element as any).mozRequestFullScreen
10    || (element as any).msRequestFullscreen;
11
12  if (request) {
13    request.call(element);
14  } else {
15    console.warn('Fullscreen API is not supported by this browser.');
16  }
17}
  • Cross-Browser Compatibility

    Supports multiple vendor-prefixed versions (webkit, moz, ms) of the Fullscreen API, ensuring broader browser support.

  • Graceful Fallback

    Provides a fallback warning if fullscreen is not supported, helping developers detect unsupported environments.

  • Default Target Support

    Defaults to document.documentElement, which covers the common case of making the whole page fullscreen.

  • Minimal Interface

    Simple and intuitive signature with a single optional parameter, making it easy to integrate.

Tests | Examples

TypeScript
Copied!
1test('enterFullscreen calls requestFullscreen if available', () => {
2  const mockRequest = vi.fn();
3  const element = {
4    requestFullscreen: mockRequest
5  } as unknown as HTMLElement;
6
7  enterFullscreen(element);
8  expect(mockRequest).toHaveBeenCalled();
9});
10
11test('enterFullscreen falls back to vendor-prefixed methods', () => {
12  const mockWebkit = vi.fn();
13  const element = {
14    webkitRequestFullscreen: mockWebkit
15  } as unknown as HTMLElement;
16
17  enterFullscreen(element);
18  expect(mockWebkit).toHaveBeenCalled();
19});
20
21test('enterFullscreen warns if fullscreen is not supported', () => {
22  const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
23  const element = {} as HTMLElement;
24
25  enterFullscreen(element);
26  expect(warnSpy).toHaveBeenCalledWith('Fullscreen API is not supported by this browser.');
27
28  warnSpy.mockRestore();
29});

Common Use Cases

  • Video Players

    Enable fullscreen mode for custom video containers or media players.

  • Image/Gallery Viewers

    Allow users to view images or slideshows in fullscreen for a better experience.

  • Presentations or Slides

    Trigger fullscreen for decks or slide components in web-based presentation tools.

  • Interactive Applications

    Enhance focus and immersion for games, simulations, or drawing apps.

  • Accessibility or Focus Mode

    Provide distraction-free viewing for reading or writing environments.

Codebase: Utilities -> Browser & DOM -> enterFullscreen | Yevhen Klymentiev